Objective-C可变参数方法的定义和使用
来源:互联网 发布:天猫和淘宝质量一样吗 编辑:程序博客网 时间:2024/06/05 02:52
1,Demo
<pre name="code" class="objc">#import <stdarg.h>//1,导入这个头文件- (int)VariableParameter:(NSString *)str,...NS_REQUIRES_NIL_TERMINATION //2,参数列表这样写{ va_list varList; //3,定义va_list类型的变量 NSString *temp; int num = 0; if (str == nil) { return num; } va_start(varList, str); //4,开始开始标志,第一个参数是va_list类型的变量,用于存储参数的数组,第二个参数是参数列表中的第一个参数 while ((temp = va_arg(varList, NSString *)) != nil) { //5,循环从数组中取出来并判断是不是为空,最后一个为空 NSLog(@"%@", temp); num++; } va_end(varList);//6,关闭varList指针 return num;}
2,注意事项和基本使用
可变参数的限制:
1)参数列表中不能只有可变参数
2)可变参数必须出现在参数列表的最后
3)可变参数的类型必须由程序管理
就是说,调用可变参数的方法的时候,不能没有任何参数,要至少有一个变量。可变参数变量不能出现在参数列表的中间位置,只能出现在参数列表的最后。调用时候参数列表中允许出现不同类型的参数,但是程序要保证类型的正确性。
定义可变参数的方法或者函数的时候要引入头文件 stdarg.h . 用 ... 表示可变参数,获取可变参数之前要定义一个 va_list 类型的变量。
使用方法:
va_list pvar;.......va_start(pvar, 可变参数前面的一个变量名);.......f = va_arg(pvar, 类型名);.......va_end(pvar);
va_arg() 获取可变参数的值,执行的时候能够获得下一个变量的值。第二个参数是要获取的值得类型,这个类型不一定都一样。
va_end() 获取参数完成之后,调用这个来关闭pvar指针, va_start 和 va_end 都是成对出现的。
可变参数一般都是以NULL或者nil结尾,在使用的时候经常出现忘记加NULL的情况。这个问题可以通过在方法或者方法声明的结尾加上宏定义NS_REQUIRES_NIL_TERMINATION 。加上之后,编译时候如果发现忘记NULL就会提示警告。
0 0
- Objective-C可变参数方法的定义和使用
- [C#]中的可变参数定义和使用
- Java中可变长参数方法的定义和使用
- 详解Objective-C可变参数函数定义
- iOS: Objective-C可变参数函数定义
- C 语言 可变参数 的使用 方法
- iOS:在objective-c 使用可变参数
- iOS:在objective-c 使用可变参数
- C语言可变参数宏定义方法
- c语言宏定义,可变参数的使用
- c语言宏定义,可变参数的使用
- c语言宏定义,可变参数的使用
- c 可变参数 定义可变参数的函数
- c 可变参数 定义可变参数的函数
- objective-c 方法带参数的使用
- objective-c 中定义多参数的方法
- objective-c 多参数方法的定义与调用
- 【Objective-C】语法(二)带有参数的方法定义
- 一种Dump文件解析
- Ajax常见问题
- 惨痛教训其二
- OCP 题库 笔记
- [深入学习C#]利用反射给对象赋值
- Objective-C可变参数方法的定义和使用
- Java的HashMap和HashTable
- quick-3.5 无法正常显示有混合纹理的csb文件
- Python File writelines() Method 按行写文件
- C#命名规范
- 关于android中dp与px在layout中是否可以使用浮点数
- Android学习总结之性能优化
- NIO与IO的区别与使用
- HashTable