[IOS 开发] OC 定义一个方法,参数数量可变.
来源:互联网 发布:mysql 外键设置 编辑:程序博客网 时间:2024/06/10 09:26
在工作的需求中,需要传多个参数,参数的个数不是固定的.
当然我们可以传一个数组.
今天和大家介绍用另一个方法来解决这个问题.
#define FORMATFUN(...) [self actionUsePic:__VA_ARGS__]- (NSString *)actionUsePic:(NSString *)actionNum, ... { NSMutableString *argsArray = [[NSMutableString alloc]init]; va_list params; //定义一个指向个数可变的参数列表指针; va_start(params,actionNum);//va_start 得到第一个可变参数地址, id arg; if (actionNum) { //将第一个参数添加到array NSString *prev = actionNum; [argsArray appendString:prev]; //va_arg 指向下一个参数地址 //这里是问题的所在 网上的例子,没有保存第一个参数地址,后边循环,指针将不会在指向第一个参数 while( (arg = va_arg(params,id)) ) { if ( arg ) { [argsArray appendString:arg]; } } //置空 va_end(params); } return argsArray;}
调用并打印
NSString *i = FORMATFUN(@"1",@"2",@"3",@"4",nil);NSLog(@" i = %@", i);
打印结果: i = 1234
0 0
- [IOS 开发] OC 定义一个方法,参数数量可变.
- iOS 使用可变参数va_list, 定义一个方法
- java中参数数量可变的方法
- 5.5 参数数量可变的方法
- java参数数量可变的方法
- Java :参数数量可变的方法
- 通过反射机制创建一个构造方法中参数数量可变的对象
- iOS: Objective-C可变参数函数定义
- iOS oc可变数组排序方法
- C语言可变参数宏定义方法
- params关键字给方法传递可变数量的参数
- 【Java学习笔记】参数数量可变的方法
- OC 可变参数
- oc 可变参数传递
- OC的可变参数
- 可变数量参数的传递
- C# params可变数量参数
- 可变数量的参数列表
- 98 php 访问本地项目localhost很慢
- Kaldi学习手记(一):Kaldi的编译安装
- Cookie/Session机制详解
- CSS定位
- redhar安装mongoDB-摘抄自官网
- [IOS 开发] OC 定义一个方法,参数数量可变.
- Spring MVC: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]
- IOS 开发深入
- centos7安装redis-3.0.4集群
- Windows8.1 64bit环境下搭建深度学习平台之CUDA安装与配置
- 火车车次查询api代码文档及返回示例分享
- 单例设计饿汉式懒汉式
- 黑马程序员—网络编程TCP与UDP简介
- 64位WIN7上成功安装theano,并运行了g++, GPU