A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© UT丶 中级黑马   /  2014-5-8 12:46  /  1964 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 UT丶 于 2014-5-10 17:29 编辑

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

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

4 个回复

正序浏览
NSArray 是不可变数组,加nil是为了表示添加数组结束了,就像C语言里的数组一样,必须加/0,来表示已结束,这样的话,数组里就不会出现乱码!
NSArray *weekArray = [NSArray arrayWithObjects@"一",@"二", @"三",@"四",nil];
NSArray *weekArray = @[@"一",@"二", @"三",@"四"];//快速创建是会自动加nil的!
NSMutableArray *weekArray = [NSMutableArray arrayWithObjects@"一",@"二", @"三",@"四",nil];
回复 使用道具 举报
[NSArray arrayWithObjects:@"一",@"二", @"三",@"四",nil],NSArray是不可变数组,当你创建数组,初始化的时候,数组内的元素已经确定并且也不能给数组增加元素,当一个不可变数组需要存储多个元素时,可以调用该方法,而nil代表的是数组元素的结束标志,说明数组元素就是nil前面的元素,所以nil不能作为数组元素储存在数组中,可变数组和不可变数组都可以用,而可变数组可增加元素。

回复 使用道具 举报
  1.         NSArray *array1 = @[@"1", @"2", @"3"]; // 数组快速初始化,自动在数组尾部加nil
  2.         NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", @"6", nil]; // 手动加nil,表数组结束
复制代码
回复 使用道具 举报
OC NSArray数组初始化的最后一个元素一定是nil,表示结束,而NSMutableArray初始化的时候不要以nil元素。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马