天堂向右,我依然向左

天下之大,虽离家千里,何处不可往!何事不可为!
生活之路,纵坎坷曲折,当奋斗不息,则精彩纷呈!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
关于NSArray,NSMutableArray的使用与内存问题(仅个人在使用过程中体会)

偶已几种方式建立说明如下:

第一种:
复制代码
  1. FirstArray = [[NSArray arrayWithObjects:
  2.                   @"a",
  3.                   @"b",
  4.                   @"c",nil] retain];
  5. NSLog(@"FirstArray%d",[FirstArray count]);
  6. NSLog(@"FirstArray%d",[FirstArray retainCount]);


此方式返回的retainCount为2,程序难免会leak,不过一般也不会,小心为好。

第二种:
复制代码
  1. FirstArray = [NSArray arrayWithObjects:
  2.                   @"a",
  3.                   @"b",
  4.                   @"c",nil];
  5. NSLog(@"FirstArray%d",[FirstArray count]);
  6. NSLog(@"FirstArray%d",[FirstArray retainCount]);

此方式返回的retainCount为1,但后面用到时,程序会Crash。


第三种:
复制代码
  1. NSArray *First = [[NSArray alloc] initWithObjects:
  2.                        @"a",
  3.                        @"b",
  4.                        @"c",nil];
  5.     self.FirstArray=First;
  6.     [First release];
  7. NSLog(@"FirstArray%d",[FirstArray count]);
  8. NSLog(@"FirstArray%d",[FirstArray retainCount]);

此方式返回的retainCount为1,程序正常运行,不会leak...


建议使用第三种,NSMutableArray同NSArray操作。

ZT:http://www.cocoachina.com/bbs/read.php?tid=7096 

posted on 2010-09-09 09:26  老舟  阅读(444)  评论(0编辑  收藏  举报