2011-08-04 48 views
0

在我的項目AppDelegate文件中,我有一個int聲明叫做correctAnswersCountR1。因此,在應用程序中,他們進行一個小測驗,並且該變量記錄他們得到的正確答案的數量。現在其他地方的項目中,我使用這個變量,像這樣:AppDelegate int值不斷得到重置

int r1score=appDelegate.correctAnswersCountR1; 

的問題是,如果很明顯我退出程序,回來時,值不會被記住,並重新設置爲默認值。如何儲存此號碼,以便用戶關閉應用程序並返回時記住該號碼?

回答

3

您可以使用NSUserDefaults的存儲你的價值:

**Saving** 
//Do this right before the app exits 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// saving an NSInteger 
[prefs setInteger:42 forKey:@"integerKey"]; 

// This is suggested to synch prefs, but is not needed 
[prefs synchronize]; 

**Retrieving** 
//Do this when your app is loaded again 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// getting an NSInteger 
NSInteger myInt = [prefs integerForKey:@"integerKey"]; 
+0

'NSNumber'是-1開始進入前的包裝。 – Joe

+0

@Joe你是正確的,只是更新,儘管你可以實際使用setInteger方法。 –

+0

那麼.... +1 – Joe

0

你可以建立核心數據爲您的項目,但除非你打算永久地存儲更多的信息,你的應用程序的核心數據可能會有點矯枉過正。您也可以嘗試將其寫入文件並在加載時讀取它。

編輯:對於這個特定的場景,奧斯卡的答案似乎更合適,不過取決於你計劃去哪裏與你的應用程序,CoreData或文件可能是一個不錯的選擇。

0

你必須使用一個喜好保管機構。我對iPhone工具箱並不太熟悉,但是在Mac OS X和Cocoa上有NSUserDefaults。當您的應用啓動時,您將通過[[NSUserDefaults standardUserDefaults] intForKey:@"count"]從用戶默認值(首選項)加載該值,並且每當該值發生更改時,您都會撥打[[NSUserDefaults standardUserDefaults] setInt:answerCount... forKey:@"count"]

0

我非常肯定你想將值寫入文件以使其持久。

這是因爲移動到後臺的應用程序可能會終止,例如系統測量出它需要更多內存。

因此它殺死應用程序並在用戶切換時重新啓動它。