Objective-c:访问方法中的可变参数 [英] Objective-c : Accessing variadic arguments in method
本文介绍了Objective-c:访问方法中的可变参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
blockquote>
以下是一个具有可变参数的方法示例。
- (void)numberOfParameters:group,... {
NSLog(@%@,group);
$ b在上面的方法中,我知道要访问第一个可变参数。
您是否可以帮助我访问其他人?
我只是通过 ObjC.pdf &我正在阅读第35页和第行号是4
解决方案看到这个几乎相同问题
- (void)yourMethods:(id)string1,... {
NSMutableArray * arguments = [[NSMutableArray alloc] initWithArray:nil];
id eachObject;
va_list argumentList;
if(string1)
{
[arguments addObject:string1];
va_start(argumentList,string1);
while((eachObject = va_arg(argumentList,id)))
{
[arguments addObject:eachObject];
}
va_end(argumentList);
}
NSLog(@%@,arguments);
}
最后使用 nil 参数调用它, :
$ b $ pre $[object yourMethods:arg1,arg2,arg3,nil]; //对象可以是自己
code>
Possible Duplicate:
How to create variable argument methods in Objective-C
Variable number of method parameters in Objective C - Need an exampleFollowing is an example of a method having variadic arguments.
- (void)numberOfParameters:group,... { NSLog(@"%@",group); }
In above method, I know to access the first one of the variadic arguments. Would you please help me for accessing the others as well?
I am just going through ObjC.pdf & I am reading page number 35 & line number is 4
解决方案See this almost same question
-(void)yourMethods:(id)string1, ...{ NSMutableArray *arguments=[[NSMutableArray alloc]initWithArray:nil]; id eachObject; va_list argumentList; if (string1) { [arguments addObject: string1]; va_start(argumentList, string1); while ((eachObject = va_arg(argumentList, id))) { [arguments addObject: eachObject]; } va_end(argumentList); } NSLog(@"%@",arguments); }
Call it with nil parameter at the end as:
[object yourMethods:arg1,arg2,arg3,nil];// object can be self
这篇关于Objective-c:访问方法中的可变参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文