2011-11-07 64 views
0

只是一個簡短的問題。我對此有點不確定。是否可以閱讀和更新設置plist

當我添加Settings.plist到我的Objective C iPhone項目並從中讀取設置。是否可以更新此文件中的設置?或者是這個文件只可讀,我應該在其他位置創建一個副本是這樣的:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

,並檢查其是否在發射的存在呢?

+1

請參閱[使用新版本的應用更新和更改設置plist文件]鏈接。 [1]:http://stackoverflow.com/questions/1609305/updating-changing-settings-plist-files-with-new-versions-of-an-app –

+0

哪些plist中你是問??它是一個項目的plist( -info.plist)??? – DShah

+0

Check out http://stackoverflow.com/questions/8029426/how-to-load-an-nsdictionary-from-a-file-created-with-writetofile/8030445#8030445 – syclonefx

回答

1

您無法通過Xcode編輯您的應用程序中包含的文件,因此您可以將其複製到用戶的文檔文件夾中。

然而,正如你所感興趣的設置plist文件,我勸你NSUserDefaults的使用,它會自動保存一個文件的.plist保存設置:在應用程序中對applicationDidFinishLoading委託寫

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if (![defaults boolForKey:@"firstRunComplete"]) { 
    [defaults setObject:optionOne forKey:@"optionOne"]; //replace 
    [defaults setObject:optionTwo forKey:@"optionTwo"]; //replace 
    [defaults setBool:YES forKey:@"firstRunComplete"]; 
    [defaults synchronize]; 
} 

而且當你想改變的選項之一

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:optionOne forKey:@"optionOne"]; //replace 
[defaults setObject:optionTwo forKey:@"optionTwo"]; //replace 
[defaults synchronize]; 

另外,您可以使用此方法進行編輯的plist文件:

NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath]; 
[plistDict writeToFile:filePath atomically: YES];