Objective C:Cocoa:2组可变参数?

Rob*_*ida 3 iphone cocoa objective-c

可以通过这种方式获得方法:

[obj mergeObjs:obj1,obj2,obj3,nil];
Run Code Online (Sandbox Code Playgroud)

或者以这种方式有一个方法:

[obj mergeObjs:obj1,obj2...obj(n),nil usingBlocks:blk1,blk2,blk3....blk(m),nil];
Run Code Online (Sandbox Code Playgroud)

其中n可能等于或不等于m.

基本上是单个方法声明中的多个变量参数列表.?

这不是一个可能的答案:

[obj merge:[NSArray arrayWithObjects:[NSArray arrayWithObjects:...,nil],[NSArray arrayWithObjects:...,nil]...,nil]];
Run Code Online (Sandbox Code Playgroud)

提前致谢.

这是我找到的单变量参数列表的链接:

http://developer.apple.com/library/mac/#qa/qa1405/_index.html 如何在Objective-C中创建变量参数方法

Ada*_*ght 5

您无法使用可变长度参数列表实现此目的,但您是否考虑过只传递两个数组?

[obj mergeObjs:(NSArray*)objs usingBlocks:(NSArray*)blocks];
Run Code Online (Sandbox Code Playgroud)

现代版本的clang(最近的Xcode版本使用的Objective C编译器)甚至支持NSArray文字

[instance mergeObjs:@[obj1, obj2, obj3] usingBlocks:@[^{}, ...]];
Run Code Online (Sandbox Code Playgroud)

(当然,确保适当地复制块以插入NSArray).