Chinaunix首页 | 论坛 | 博客
  • 博客访问: 114378
  • 博文数量: 42
  • 博客积分: 916
  • 博客等级: 准尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 10:01
文章分类

全部博文(42)

文章存档

2011年(42)

分类: 嵌入式

2011-11-16 08:53:39

小弟oc新手,昨天看中的第7章的dependentPickerView例子总是爆出内存越界错误,在网上搜索了一下意识到错误是这样造成的:
在dependentViewPicker类中的viewDidLoad方法中有如下代码
   
  1. NSBundle *bundle = [NSBundle mainBundle];
  2. NSString *plistPath = [bundle pathForResource:@"statedictionary" ofType:@"plist"];
  3. NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
  4. /*注意下面两行就是问题的根源*/
  5. self.stateZips = dictionary;
  6. [dictionary release];
上面的代码是书中的源代码,运行是没问题的,但是小弟在写程序时候将self.stateZips写成了stateZips ,然后一直就爆出数组越界错误,原因就是self.stateZips与stateZips的区别:
self.stateZips = dictionary会调用retain方法,
stateZips只是简单的将指针指向了dictionary,
你可以写在这一行代码后面输出retainCount看看这两种代码格式得出的retainCount数是不一样的,参考连接:http://www.cnblogs.com/zenny-chen/archive/2011/10/12/2208401.html
阅读(2316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~