有可能以这种方式有一个方法:
[obj mergeObjs:obj1,obj2,obj3,nil];
或者以这种方式有一个方法:
[obj mergeObjs:obj1,obj2...obj(n),nil usingBlocks:blk1,blk2,blk3....blk(m),nil];
其中 n 可能等于也可能不等于 m。
基本上多个变量参数列表在单个方法声明中。 ?
这不是一个潜在的答案:
[obj merge:[NSArray arrayWithObjects:[NSArray arrayWithObjects:...,nil],[NSArray arrayWithObjects:...,nil]...,nil]];
提前致谢。
这是我为单变量参数列表找到的链接:
http://developer.apple.com/library/mac/#qa/qa1405/_index.html How to create variable argument methods in Objective-C
最佳答案
您无法使用可变长度参数列表实现此目的,但您是否考虑过只传递两个数组?
[obj mergeObjs:(NSArray*)objs usingBlocks:(NSArray*)blocks];
现代版本的 clang(最近的 Xcode 版本使用的 Objective C 编译器)甚至支持 NSArray
文字
[instance mergeObjs:@[obj1, obj2, obj3] usingBlocks:@[^{}, ...]];
(当然,确保适本地复制您的 block 以插入到 NSArray 中)。
关于iphone - Objective-C : Cocoa : 2 sets of variable arguments?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10138469/