黑马程序员技术交流社区

标题: 可变数组实例化问题 [打印本页]

作者: UT丶    时间: 2014-5-8 12:46
标题: 可变数组实例化问题
本帖最后由 UT丶 于 2014-5-10 17:29 编辑

NSArray *weekArray = [NSArray arrayWithObjects:@"一",@"二", @"三",@"四",nil];

为什么最后要加一个空?  可变数组常用还是不可变常用那?


作者: Max_骏    时间: 2014-5-8 13:31
OC NSArray数组初始化的最后一个元素一定是nil,表示结束,而NSMutableArray初始化的时候不要以nil元素。
作者: Er01c    时间: 2014-5-8 17:12
  1.         NSArray *array1 = @[@"1", @"2", @"3"]; // 数组快速初始化,自动在数组尾部加nil
  2.         NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", @"6", nil]; // 手动加nil,表数组结束
复制代码

作者: 马上成功    时间: 2014-5-8 17:14
[NSArray arrayWithObjects:@"一",@"二", @"三",@"四",nil],NSArray是不可变数组,当你创建数组,初始化的时候,数组内的元素已经确定并且也不能给数组增加元素,当一个不可变数组需要存储多个元素时,可以调用该方法,而nil代表的是数组元素的结束标志,说明数组元素就是nil前面的元素,所以nil不能作为数组元素储存在数组中,可变数组和不可变数组都可以用,而可变数组可增加元素。


作者: Jine    时间: 2014-5-8 21:31
NSArray 是不可变数组,加nil是为了表示添加数组结束了,就像C语言里的数组一样,必须加/0,来表示已结束,这样的话,数组里就不会出现乱码!
NSArray *weekArray = [NSArray arrayWithObjects@"一",@"二", @"三",@"四",nil];
NSArray *weekArray = @[@"一",@"二", @"三",@"四"];//快速创建是会自动加nil的!
NSMutableArray *weekArray = [NSMutableArray arrayWithObjects@"一",@"二", @"三",@"四",nil];




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2