2010-02-09 118 views
21

我的iPhone應用程序有幾個設置,用戶可能經常更改。我想知道是否有任何建議的方式來處理這些設置(閱讀並保存它們)。在Apple網站上,我只找到了關於將應用程序設置與設置應用程序集成在一起的教程(link),但我不希望用戶退出我的應用程序,以便他可以更改選項。在應用程序中存儲iPhone應用程序設置

是否有任何默認機制來處理應用程序本身的這些設置,還是我必須實現我自己的解決方案?

回答

43

在iPhone中存儲設置的最佳和最簡單的方法是通過NSUserDefaults。讓您不必處理文件系統或plists或其他任何東西。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *storedVal = @"This is what you want to save"; 
NSString *key = @"storedVal"; // the key for the data 

[defaults setObject:storedVal forKey:key]; 
[defaults synchronize]; // this method is optional 


// Get the results out 
NSString *results = [defaults stringForKey:key]; 

這裏就是蘋果說的類型,您可以在默認存儲對象

默認的對象必須是一個屬性 名單,也就是(或 集合一個實例的組合實例 ):NSData,NSString,NSNumber, NSDate,NSArray或NSDictionary。如果 要存儲任何其他類型的 對象,則通常應將其存檔 它來創建NSData的實例。

還有一些警告,如果你存儲NSDictionary的鍵值必須是字符串。

+2

退房InAppSettingsKit是否有可能存儲的其他類型的值,然後'NSString'像數字或日期? – RaYell 2010-02-09 11:02:16

+0

是的,我更新了我的答案 – kubi 2010-02-09 11:24:41

+0

感謝隊友,這是我想聽到的那種答案。 – RaYell 2010-02-09 11:35:56

0

從iPhone Developer Connection中閱讀File and Networking Guide。它將解釋如何獲取應用程序沙箱中不同預定義位置的路徑。我建議你使用NSDictionary來存儲你的首選項,這些首選項可以很容易地保存到文件系統並轉換成plist。