Iphone 为什么使用initWithObjects初始化数组时,最后一项是;零;?
可能重复:Iphone 为什么使用initWithObjects初始化数组时,最后一项是;零;?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,可能重复: 事实上,问题很简单。Xcode建议最后一项是“nil”,我想知道为什么 array1 = [[NSArray alloc] initWithObjects: @"one", @"two", @"three", @"four", nil]; 空终止(nil)字符用于确定数组的长度。未能正确终止数组可能会导致缓冲区溢出和其他未定义的行为 除了重定向到关于的文档之外,值得注意的是,一般来说,对于可变函数(即接受可变数量参数的函数),要么预先指定参数数量,要么以某种方式终止参数列表。Ni
事实上,问题很简单。Xcode建议最后一项是“nil”,我想知道为什么
array1 = [[NSArray alloc] initWithObjects: @"one", @"two", @"three", @"four", nil];
空终止(nil)字符用于确定数组的长度。未能正确终止数组可能会导致缓冲区溢出和其他未定义的行为 除了重定向到关于的文档之外,值得注意的是,一般来说,对于可变函数(即接受可变数量参数的函数),要么预先指定参数数量,要么以某种方式终止参数列表。Nil是终止参数列表的一种好方法,也是使用
initWithObjects
时采用的方法,请参见: