2011-08-09 63 views

回答

2

也許這將是太明顯,但是你可以用以下方式進行修改:

  1. 走進文本編輯和
  2. 之間修改內容
  3. 在Xcode中雙擊plist文件並使用plist編輯器進行編輯,該編輯器爲編輯plist提供了更友好的用戶界面。
  4. 使用NSKeyedArchiver和NSKeyedUnarchiver類編寫ObjectiveC代碼來加載,修改和保存字典。用於操作存儲在字典中的Plist

終極解決方案:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@ "plist"]; 
NSDictionary *plistDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath]; 
[plistDictionary setValue:@"newName" forKey:@"testKey"]; 
[plistDictionary writeToFile:plistPath atomically:YES]; 

希望你會採用自己的需要此代碼示例。

...好,我在這裏是爲您的特定的plist結構的代碼示例:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"yourPlist" ofType:@ "plist"]; 
NSMutableDictionary *plistDictionary = [[NSDictionary dictionaryWithContentsOfFile:plistPath] mutableCopy]; 
NSMutableArray *accountsArray = [(NSArray *)[plistDictionary valueForKey:@"accounts"] mutableCopy]; 
NSMutableDictionary *accountDictionary = [(NSDictionary *)[accountsArray objectAtIndex:0] mutableCopy]; 

[accountDictionary setValue:@"NewName" forKey:@"name"]; 
[accountsArray replaceObjectAtIndex:0 withObject:accountDictionary]; 
[plistDictionary setValue:accountsArray forKey:@"accounts"]; 

[plistDictionary writeToFile:plistPath atomically:YES]; 
+0

在應用程序我想不手動 – mamrezo

+1

遵循第三個建議的方式。這通常很容易實現。與plists一起工作的是非常高水平的課程。 –

+0

可以在更新plist文件中向我顯示NSKeyedArchiver的教程嗎? – mamrezo

0
+2

的[屬性列表編程指南(http://developer.apple.com/library/ios /#documentation/Cocoa/Conceptual/PropertyLists/Introduction/Introduction.html)可能對初學者更好。如果您可以擁有更簡單的Cocoa API,那麼使用Core Foundation處理屬性列表是不必要的複雜。 – omz

+0

好點omz。你應該提交它作爲答案;-) – ccozad