2010-02-22 64 views
0

我正在使用NSUsersDefault在應用程序出現任何中斷時保存應用程序的狀態。iPhone + NSUserDefault + NSString

我所做的是我在我的類中創建了一個方法「saveState」,其中應用程序正在運行,並且在此方法中,我將所有必需的東西保存在NSUsersDefault中,其中包含我少有的NSString像

[prefs setObject:batsman1HowOut forKey:@「batsman1HowOut」];

現在,我從AppDelegate類 - > applicationWillTerminate方法調用「saveState」方法。

那麼,什麼情況是,當發生中斷,它會在應用程序委託類和applicationWillTerminate方法將被調用,它將不是去哪裏我在NSUsersDefault存儲一切階級的「saveState和」方法。

問題是,當我試圖挽救的NSString(像上面的),它給我的錯誤說是超出了範圍。

請幫幫我。

問候, PRATIK

+0

你已經發布或者刪除了batsman1HowOut嗎? – willcodejavaforfood 2010-02-22 08:19:20

+0

你是在談論這個類的「dealloc」方法嗎? – pratik 2010-02-22 08:24:22

+0

我在課堂的「dealloc」方法中發佈了batsman1HowOut – pratik 2010-02-22 08:41:23

回答

0

時調用的方法applicationWillTerminate,大概字符串已經被釋放。在將它保存到NSUserDefaults之後嘗試釋放該字符串。這不會導致內存泄漏,因爲每次關閉應用程序時,都會調用applicationWillTerminate。