我一直在寻找这个问题的答案 - 也许我正在寻找错误的地方。此外,我是Objective C的新手,尽管我有大约10年的开发经验。
代码:
[receiver makeGroup:group, memberOne, memberTwo, memberThree];
方法定义是什么样的?
- (void)makeGroup:(Group *)g, (NSString *)memberOne, ...?
感谢您提供的任何帮助。我知道这可能很简单......
谢谢, [R
答案 0 :(得分:4)
看起来你有一个方法可以采用可变数量的参数。如果是这种情况,定义将类似于:
- (void)makeGroup:(Group *)g, ...;
查看NSString
的{{1}}或stringWithFormat:
的{{1}}方法以获取示例。
编辑:在进一步阅读文档后,您似乎正在查看Objective-C 2.0 documentation中的确切示例。您正在寻找的声明就在第36页的底部。
答案 1 :(得分:1)
您可以使用省略号(...)接收无限数量的参数。查看this了解更多详情!
答案 2 :(得分:1)
将成员作为单独的数组参数更有意义,例如-(void)makeGroup:(Group *)g members:(NSArray *)members
。如果你必须做varargs(这很痛苦),它应该写成-(void)makeGroup:(Group *)g members:(NSString *)firstMember, ...
。
因为我试图弄清楚如何声明文档中的示例方法,它将是这样的:
- (void)makeGroup:(id)group, ...
然后你将使用group参数启动varags机制并使用它来查找其他参数。
答案 3 :(得分:0)
要么你正在寻找MrHen的答案,如果你正在寻求自己的类方法,或者如果你想单独进行,你可以在头文件中写下以下内容:
-(void)makeGroup:(Group *)g;
-(NSString *)memberOne;
答案 4 :(得分:-1)
正确的方法是:
-(void)makeGroup:(Group *)g memberOne:(NSString *)memberOne memberTwo:(NSString *)memberTwo memberThree:(NSString *)memberThree {
...
}
电话会是这样的:
[receiver makeGroup:group memberOne:memberOne memberTwo:memberTwo memberThree:memberThree];