我一直有NSDate的一些問題,並將其保存在NSUserDefaults。它每隔兩秒就會關聯NSUserDefaults保存我的NSDate,但它不能,因爲它已被釋放,並在日誌中顯示此錯誤。NSDate保留消息發送到解除分配的實例
-[__NSDate retain]: message sent to deallocated instance 0x4c20c80
我知道的NSDate allocs並以不同的方式,正常的對象deallocs,但我想知道是否有人知道,如果使用:
- (void)saveData
{
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
[data setObject:dateOpened forKey:@"dateOpened"];
[dData synchronize];
}
......或者......
- (void)loadData
{
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
dateOpened = [data objectForKey:@"dateOpened"];
}
我正在發佈我的NSDate實例,因此給它一個保留計數爲0,所以我的應用程序在它嘗試時不能保存它嗎?
我使用:
@property (retain) NSDate *dateOpened;
任何想法的將是非常感激,因爲我要瘋了試圖找出了這一點。我只學了大約4個月左右的時間,幾乎完成了我的第一個應用程序,這是一個主要的作品!
非常感謝,如果您需要更多關於我在做什麼的代碼或信息,請告訴我。 :-D
在您的示例代碼,你在哪裏保存和加載數據時,伊娃說CLOSED(dateClosed),關鍵說OPENED(dateOpened)。但是當你提到@property行時,你說這個ivar是dateOpened(OPENED)。你說你不是在混日子嗎? – 2011-03-24 23:36:02
對不起,忘了改變它。剛剛編輯它如何它被認爲是。日期不會混淆,只是我的錯誤複製和粘貼。 :) – Baza207 2011-03-24 23:41:57