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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我用[NSMutableArray array]初始化的数据,添加数据模型类就没事,添加字符串成员就报错。
[[NSMutableArray array]init]添加字符串就没事

  1. [NSMutableArray *array = [NSMutableArray array];
  2. //没事
  3. NSString *name = [NSString stringWithFormat:@"这本书是第%d本",i];
  4.         NSString *icon = [NSString stringWithFormat:@"00%d.png",i];
  5.         NSString *desc = [NSString stringWithFormat:@"第%d本.......",i];
  6.         shop *po = [shop shopWithName:name andIcon:icon andDesc:desc];
  7.         [array addObject:po];
  8. //报错
  9. [array addObject:[NSString stringWithFormat:@"s:%d--i:%d",0,10]];

  10. //没事
  11. array = [[NSMutableArray array] init];

  12. [array addObject:[NSString stringWithFormat:@"s:%d--i:%d",0,10]];
复制代码



3 个回复

倒序浏览
本帖最后由 枫煠 于 2014-12-6 16:43 编辑
  1. [NSMutableArray *array = [NSMutableArray array];
复制代码


这行应该是
  1. NSMutableArray *array = [NSMutableArray array];
复制代码


多一个[

另外[NSMutableArray array]与[[NSMutableArray array] init]的差异以前没有ARC时
[NSMutableArray array]不需要release
而[[NSMutableArray array] init]则需要

  1. //array不用release
  2.     NSMutableArray *array = [NSMutableArray array];
  3.    
  4.     //array2要release,若专案是ARC,release那行也可省略
  5.     NSMutableArray* array2 = [[NSMutableArray array] init];
  6.     [array2 release];
  7.    
  8.    
  9.     //也可宣告成,@[]是array的简写
  10.     NSMutableArray* array3 = [@[]mutableCopy];
复制代码

回复 使用道具 举报
......可是我想问的不是这个,我想问的是为什么,不一样的初始化,添加字符串成员会报错。
回复 使用道具 举报
报错的问题就是你第一行
[NSMutableArray *array = [NSMutableArray array];

最左边多一个呀@@

不同初始化方式,都可以添加字串成员滴,纯粹是打错一个"'["的问题而已
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马