1
if ([timer respondsToSelector:@selector(userInfo)]){
[timer performSelector:@selector(userInfo)];
}
計時器不是零,並響應選擇器。但是我有兩行EXC_BAD_ACCESS。這怎麼可能?對象響應選擇器,但當我嘗試發送此選擇器時 - EXC_BAD_ACCESS
if ([timer respondsToSelector:@selector(userInfo)]){
[timer performSelector:@selector(userInfo)];
}
計時器不是零,並響應選擇器。但是我有兩行EXC_BAD_ACCESS。這怎麼可能?對象響應選擇器,但當我嘗試發送此選擇器時 - EXC_BAD_ACCESS
嘗試使用NSZombieEnabled。您的計時器可能指向已釋放的內存部分...
感謝您的回覆。但[timer retainCount] == 3 ..當計數器等於3時,對象可以被自動釋放? – user840612
即使使用retainCount == 0,對象也可以autorelease。你將會遇到這個問題......但是使用retainCount == 3它可能會好的。 – Peres
你不應該依賴retainCount來做任何事情。它的內容不可靠或不可預測,因此甚至不應該被關注。遵循所有的內存管理規則,你會沒事的。你可以發佈更多的代碼,比如你的計時器的創建地點以及引用它的所有行嗎? –