我在 Apple 文档中读到,我们可以在 Objective C 方法调用中使用可选参数。 Apple 文档中的示例:
采用可变数量参数的方法也是可能的,
尽管它们有点罕见。额外的参数用逗号分隔
在方法名称末尾之后。 (与冒号不同,逗号不是
被视为名称的一部分。)在下面的示例中,虚数
makeGroup:方法传递一个必需参数(组)和三个
可选参数:
[receiver makeGroup:group, memberOne, memberTwo, memberThree];
有人能告诉我何时使用此功能以及如何使用吗? Apple API中有什么例子吗?
thanks
您所描述的方法类型称为variadic方法。 Cocoa 中的例子包括+[NSArray arrayWithObjects:]
and +[NSDictionary dictionaryWithObjectsAndKeys:]
。您可以使用中定义的宏来访问可变参数方法(或函数)的参数stdarg.h
.
下面是一个示例,说明如何+[NSArray arrayWithObjects:]
可以实现方法:
+ (NSArray *)arrayWithObjects:(id)firstObject, ... {
int count = 0;
va_list ap;
va_start(ap, firstObject);
id object = firstObject;
while (object) {
++count;
object = va_arg(ap, id);
}
va_end(ap);
id objects[count];
va_start(ap, firstObject);
object = firstObject;
for (int i = 0; i < count; ++i) {
objects[i] = object;
object = va_arg(ap, id);
}
va_end(ap);
return [self arrayWithObjects:objects count:count];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)