Bug分析:unrecognized selector sent to instance
2012-05-03 12:36
441 查看
对于unrecognized selector sent to instance XXX的bug,大部分情况下是因为对象被提前release了,在你并不希望他release的情况下,指针还在,对象已经不在了。
很多时候,是因为init初始化函数中,对属性赋值没有使用self.foo赋值,而是直接对foo赋值,导致属性对象没有retain(心里以为retain了),而提前释放。
问题的进一步分析:
@interface MyClass : NSObject {
MyObject *myObject;
}
@property (nonatomic, retain) MyObject *myObject;
@end
对于self.myObject = xxx调用。你将访问由@property这里面自动给你提供的一些函数。这些函数会帮你增加引用计数。
对于myObject = xxx这种调用。相当于你直接访问花括号里面的那个,即直接给myObject赋值但是没有增加引用计数。可能造成的情况就是在你要使用myObject之前,它已经释放了。
很多时候,是因为init初始化函数中,对属性赋值没有使用self.foo赋值,而是直接对foo赋值,导致属性对象没有retain(心里以为retain了),而提前释放。
问题的进一步分析:
@interface MyClass : NSObject {
MyObject *myObject;
}
@property (nonatomic, retain) MyObject *myObject;
@end
对于self.myObject = xxx调用。你将访问由@property这里面自动给你提供的一些函数。这些函数会帮你增加引用计数。
对于myObject = xxx这种调用。相当于你直接访问花括号里面的那个,即直接给myObject赋值但是没有增加引用计数。可能造成的情况就是在你要使用myObject之前,它已经释放了。
相关文章推荐
- BugList: Objective C What does -[NSURL length]: unrecognized selector sent to instance 0x
- iOS BUG收集: -[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance
- iOS BUG整理--[__NSCFNumber length]: unrecognized selector sent to instance 崩溃解决
- -[__NSCFNumber length]: unrecognized selector sent to instance 0x12465980 崩溃分析及解决方法
- bug1:unrecognized selector sent to instance
- iOS BUG整理--[__NSCFNumber length]: unrecognized selector sent to instance 崩溃解决
- unrecognized selector sent to instance出现的原因和解决方案相关链接
- __NSCFString containsString:]: unrecognized selector sent to instance 0x7f876b79e160
- unrecognized selector sent to instance 0x81de740
- [NSNull intValue]: unrecognized selector sent to instance 0x375c9860
- __NSCFString containsString:]: unrecognized selector sent to instance 的解决方案
- swift: unrecognized selector sent to instance
- iOS错误提示:-[UITextSelectionView chatTextViewTextChange]: unrecognized selector sent to instance 0x7f
- unrecognized selector sent to instance
- 解析数据出错:reason: '-[__NSCFArray bytes]: unrecognized selector sent to instance 0x18056b30'
- [UIDeviceRGBColor copyWithZone:]: unrecognized selector sent to instance
- react-native报错[NSTaggedPointerString unsignedIntValue]: unrecognized selector sent to instance的解决办法
- 有关unrecognized selector sent to instance xxxxxxxxx的异常崩溃
- “unrecognized selector sent to instance”问题原因之一及解决方法。
- 错误纪录3-[UITapGestureRecognizer superview]: unrecognized selector sent to instance