Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么使用initWithObjects初始化数组时,最后一项是;零;?_Iphone_Objective C_Xcode - Fatal编程技术网

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

时采用的方法,请参见: