Objective-C中初始化数组末尾的"nil"的用途

its*_*ode 1 initialization objective-c

我已经看到并完成了数组的初始化,所有在初始化结束时都放了"nil",但从不质疑,为什么需要放在那里?

另外,如果你在一个循环中初始化你的数组,是否仍然需要在数组的末尾添加nil?例如.

array = [[NSMutableArray alloc] init];

for (int i = 0 ; i < 10; i++)
{
   [array addObject:@"1"];
}

// now this line is required or not after i exit the loop?
[array addObject:nil];
Run Code Online (Sandbox Code Playgroud)

Jac*_*kin 6

这个概念称为nil-termination,它的目的是为可变参数列表结束的接收函数或方法提供一个标记.

  • @itsaboutcode,不,这只需要可变方便的方法. (2认同)
  • 实际上,[array addObject:nil]会崩溃,因为你无法在NSArrays中放入nils. (2认同)