ObjC可变参数:提示结束符



在Xcode中,如果我开始输入"[NSArray arrayWith"我得到以下提示:

id arrayWithObjects:(id), ..., nil

可以看到,终止符是显式的。

如果我自己编写一个接受可变参数的方法,我会得到这个提示

id myMethod:(id), ...

(不显示终止符)。我如何暗示我想使用的终结器?

应用

__attribute__((sentinel))

属性设置为变量方法,或者使用

NS_REQUIRES_NIL_TERMINATION

宏,展开为相同的。这样,编译器就会知道你的可变参数列表需要以0结尾。

- (void)foo:(id)arg1, ... NS_REQUIRES_NIL_TERMINATION
{
    va_list args;
    va_start(args, arg1);
    // ...
}

相关内容

  • 没有找到相关文章

最新更新