unrecognized selector sent to instance出現的原因和解決方案
造成unrecognized selector sent to instance iphone,大部分情況下是因為物件被提前release了,在你心裡不希望他release的情況下,指標還在,物件已經不在了。
很多時候,是因為init初始化函式中,對屬性賦值沒有使用self.foo賦值,而是直接對foo賦值,導致屬性物件沒有retain(心裡以為retain了),而提前釋放。
造成unrecognized selector sent to instance XXX,大部分情況下是因為物件被提前release了,在你心裡不希望他release的情況下,指標還在,物件已經不在了。
問題解決連結:http://www.devdiv.com/thread-30546-1-1.html
@interface MyClass : NSObject {
MyObject *myObject;
}
@property (nonatomic, retain) MyObject *myObject;
@end
對於self.myObject = xxx呼叫。你將訪問由@property這裡面自動給你提供的一些函式。這些函式會幫你增加引用計數。
對於myObject = xxx這種呼叫。相當於你直接訪問花括號裡面的那個,即直接給myObject賦值但是沒有增加引用計數。可能造成的情況就是在你要使用myObject之前,它已經釋放了。