iphone - Objective-C : Cocoa : 2 sets of variable arguments?

标签 iphone objective-c cocoa

有可能以这种方式有一个方法:

[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/

相关文章:

objective-c - Mac OS X : start on launch while in app store?

objective-c - NSDate的initWithString : is returning nil

iphone - iOS 帮助 : loaded the nib but the view outlet was not set

ios - 将所有框架链接为可选

objective-c - OS X 鼠标位置问题

objective-c - 自定义uiview下的阴影

macos - 在 OSX 上重新打开窗口的正确方法是什么?

iphone - 尝试在 iOS 上实现 JW Player

iphone - uitableview 中返回的单元格数

iphone - xcodebuild - 如何定义预处理器宏?