2013-02-04 94 views
-1

我有一個簡單的計數器應用程序,即用戶按下一個按鈕以增加它們的值來選擇它。我開始在單個視圖應用程序上進行應用程序生產。我現在需要做到這一點,當應用程序關閉時,它會保存計數器的最後一個值。然後,當應用程序重新打開時,它需要將計數器的值加載回原處。該值需要通過關閉和打開應用程序來簡單地保存和重新加載,即不需要按下任何按鈕。Xcode:保存一個Int值

我的計數器變量是Int的值,稱爲counter。視圖控制器簡稱爲viewController.h/m

我不知道如何設置所有這些,我假設我需要coreData來做到這一點。我如何設置coreData?我是否在viewController的委託中進行編碼?如果這不是最好的方法,請提供一種更有效的方法!

非常感謝您的幫助,最簡單的說明最重要。 我曾看過其他例子,但似乎沒有提供我需要的或足夠簡單的理解。請在此主題上提供答案!

回答

1

這是最容易簡單地使用NSUserDefaults,而不是核心數據。

爲了節省:

[[NSUserDefaults standardUserDefaults] setInteger:counter forKey:@"counter"] 

閱讀:

NSInteger counter = [[NSUserDefaults standardUserDefaults] integerForKey:@"counter"]; 

看看UIApplicationDelegate找到你應該將代碼放在什麼方法它可能會在你的AppDelegate中的一個。採用以下方法:

在哪裏加載該值:

  • -application:didFinishLaunchingWithOptions:
  • –applicationWillEnterForeground:

何處保存價值:

  • -applicationDidEnterBackground:
  • –applicationWillTerminate:

如果需要加載和保存價值究竟在何處取決於當用戶切換時到另一個應用程序,這是幾乎可以肯定的情況,因爲應用程序可能會因爲內存壓力而處於凍結狀態時被終止。在這種情況下,您需要確保在應用程序後臺(用戶切換到另一個應用程序)時保存了值,並在應用程序成爲前臺應用程序(用戶切換回您的應用程序)時恢復了該值。

+0

這些位數據應該在哪裏實現? – PolygonHJ

+0

我已經更新了我的答案,描述了添加代碼的位置。 – Andrew

+0

感謝您的額外信息,我有一個警告未使用的變量'計數器',所以我認爲這是由於在viewController而不是委託實現的變量。我如何讓appDelegate查看變量的viewController? – PolygonHJ

0

您可以使用NSUserDefaults。 您可以存儲一個創建NSUserDefaults變量的變量,其中「NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];」 然後用「[standardUserDefaults setInteger:1 forKey:@」integer「]保存整數;」「 並將所有內容與「[standardUserDefaults synchronize];」同步

然後檢索創建變量的整數:「NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];」 ,然後用「NSInteger myInt = [standardUserDefaults integerForKey:@」integer「]恢復它;」