iOS 【错误:unrecognized selector sent to instance 0x7aa552b0】
2015-11-13 16:45
489 查看
翻译:给实体对象发送了不认识的消息
大概有如下两个出错原因:
1.对象过早的释放掉了,你引用的对象不存在。不能想空对象发送特定的方法(不是全部,因为release等特殊方法,例外)。
2.该对象没有这个方法,检查一下方法参数跟调用该方法时参数是否匹配(切记粗心大意)。
我出现错误是在对一个属性懒加载的过程中:
大概有如下两个出错原因:
1.对象过早的释放掉了,你引用的对象不存在。不能想空对象发送特定的方法(不是全部,因为release等特殊方法,例外)。
2.该对象没有这个方法,检查一下方法参数跟调用该方法时参数是否匹配(切记粗心大意)。
我出现错误是在对一个属性懒加载的过程中:
错误代码: - (NSArray *)flagsArr { if (_flagsArr == nil) { NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"flags" ofType:@"plist"]]; NSMutableArray *arrM = [NSMutableArray array]; for (NSDictionary *dict in arr) { //Flags *flag = [Flags flagsWithDict:dict]; 当时没有加这句话,并且下面一句给可变数组赋值传的是dict,而不是解析好的模型实例化对象 [arrM addObject:dict]; } _flagsArr = arrM; } return _flagsArr; }
正确代码: - (NSArray *)flagsArr { if (_flagsArr == nil) { NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"flags" ofType:@"plist"]]; NSMutableArray *arrM = [NSMutableArray array]; for (NSDictionary *dict in arr) { Flags *flag = [Flags flagsWithDict:dict];//★关键语句 [arrM addObject:flag];//★关键语句 } _flagsArr = arrM; } return _flagsArr; }我们在用模型中的数据的时候,会用到其中属性参数,所以说上面示例中应该是将解析完毕并传入数据的模型实例对象存储到 _flagsArr 中,这样这个属性才能被代理方法和数据源方法调用。
相关文章推荐
- Hibernate懒加载解析
- IOS 简易图片浏览器
- iOS开发——懒加载
- 延迟加载(懒加载)---LazyLoad
- 关于iOS中的懒加载
- OC笔记 - 控制器管理、UINavigationController、segue、控制器的数据传递(2015.3.16)
- OC笔记 - 懒加载、plist文件加载、UIImageView帧动画(2015.2.4)
- Hibernate懒加载解析
- iOS 懒加载
- 如何解决ViewPager中的预加载
- iOS懒加载问题
- iOS懒加载
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- iOS 性能优化之懒加载
- IOS 懒加载,死循环
- 个人经过多方查询所得关于懒加载的一些浅薄认识,及如何设置随机颜色,让个人界面变得多彩
- 真正的LazyLoad按需加载
- iOS UI 懒加载
- 解决懒加载的几种方法
- CRM-处理懒加载异常