我想要一种方法,可以像 NSArray 一样放置所需数量的参数:
- (id)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
然后我可以使用:
NSArray *array = [[NSArray alloc] initWithObjects:obj1, obj2, ob3, nil];
我可以添加任意数量的对象,只要我在末尾添加“nil”来告诉它我已经完成了。
我的问题是我如何知道给出了多少个参数,以及我如何一次一个一个地检查它们?
- (void)yourMethod:(id) firstObject, ...
{
id eachObject;
va_list argumentList;
if (firstObject)
{
// do something with firstObject. Remember, it is not part of the variable argument list
[self addObject: firstObject];
va_start(argumentList, firstObject); // scan for arguments after firstObject.
while (eachObject = va_arg(argumentList, id)) // get rest of the objects until nil is found
{
// do something with each object
}
va_end(argumentList);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)