可能重复:
Why does NSArray arrayWithObjects require a terminating nil?
据说我们需要始终使用nil
作为arrayWithObjects
的最后一项:
NSArray *wordList = [NSArray arrayWithObjects: @"hello", @"world", nil];
为什么arrayWithObjects
不能要求nil
,只为我们添加nil
。有些论坛说这是因为nil
充当了其他方法的哨兵......但这不是一个与该类用户无关的实施问题吗?
例如,如果其他语言需要
list = [1 ,2, nil] # Ruby
构建一个数组,可能有些奇怪。
答案 0 :(得分:1)
因为自动nil插入需要一些语言或编译器扩展。
对于可变参数列表,实现所需的终结符知道何时停止读取。
幸运的是,你的编译器支持sentinel属性,所以如果你出现并注意你的编译器警告,这应该不是问题。