2012-04-27 41 views
0

我一直在嘗試在應用啓動時讀取的某種文件上找到某種教程或任何類型的信息。將文件(或數據)保存到iOS設備,以便可以在應用啓動時讀取它

的情況是:

  1. 應用程序啓動
  2. 應用程序檢查適用於iOS設備的硬盤驅動器上的文件,以確定現有的設置
  3. 如果沒有現有設置,應用程序會再取數據並創建現有設置,並將其保存到iOS設備,以便在應用程序下次啓動時讀取。

我試圖儘可能清楚。如果這沒有意義,讓我知道,我會試着進一步澄清。

回答

1

For user settings, use NSUserDefaults.

但你並不需要檢查應用是否已經運行。

NSUserDefaults允許您註冊一組默認值,這些默認值僅適用於未被覆蓋的默認值,無論是在Settings.bundle中通過設置應用還是直接在您的應用中的NSUserDefaults中。

因此,定義一個initialiseUserDefaults方法並在應用程序啓動時調用它。

- (void)initialiseUserDefaults 
{ 
    NSDictionary *regDict = [NSDictionary dictionaryWithObjectsAndKeys: 
         [NSNumber numberWithBool:YES], @"userPref1", 
         [NSNumber numberWithBool:YES], @"userPref2", 
         [NSNumber numberWithBool:NO], @"userPref3", 
         nil]; 
    [[NSUserDefaults standardUserDefaults] registerDefaults:regDict]; 
} 

(你可以讓你隨時隨地可以選擇默認值。)

我希望幫助。

+0

這似乎是我想去的方向。但是,如果應用程序更改了默認值,UserDefaults將被覆蓋,是否正確?如果它們被覆蓋,應用程序啓動時UserDefaults是否仍然被檢查?目標是在應用程序啓動時檢查UserDefaults。該應用程序將執行「X」或「Y」或「Z」取決於UserDefaults的值。這有意義嗎?這聽起來是否正確,屬於UserDefaults的可能性? – Skizz 2012-04-27 14:31:05

+0

@Skizz NSUserDefaults將在您希望時進行檢查 - registerDefaults所做的是允許您指定「除非另有說明」選項 - 即您可能認爲是真正的默認值。夠清楚了嗎? – 2012-04-27 14:38:59

+0

是的,非常清楚。感謝您的幫助:D – Skizz 2012-04-27 14:47:12

0

For user settings, use NSUserDefaults.

創建的appHasRun的關鍵爲bool並檢查它是否是true。如果是這樣,他們已經運行了應用程序。如果是false,請設置所有的默認設置並將appHasRun設置爲true

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

if (![prefs boolForKey:@"appHasRun"]){ 
    /* Set Default Settings HERE */ 
    [prefs setBool:true forKey:@"appHasRun"]; 
    [prefs syncronize]; 
} 
相關問題