黑马程序员技术交流社区
标题: 可变数组实例化问题 [打印本页]
作者: 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
- NSArray *array1 = @[@"1", @"2", @"3"]; // 数组快速初始化,自动在数组尾部加nil
- 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 |