2010-11-05 93 views
0

嗨,朋友,我是初學者 ,對於簡單的問題感到抱歉。如何在plist中添加新行

如何在「」plist「」中添加新行以保存數據 及其中的訪問鍵。

NSArray *values = [[NSArray alloc] initWithObjects:@"Hello",nil]; 
[values writeToFile:[self PathArray] atomically:YES]; 

因爲,這種方法只有在改寫([自PathArray]) 「路徑」 的值;

感謝

回答

2

的plist文件並非設計用於增量更新,而不是你應該載入的plist內容在內存中,添加一個項目並保存回:

NSMutableArray *oldValues = [NSMutableArray arrayWithContentsOfFile:[self PathArray]]; 
NSArray *values = [[NSArray alloc] initWithObjects:@"Hello",nil]; 
[oldValues addObjectsFromArray:values];  
[oldValues writeToFile:[self PathArray] atomically:YES]; 
[values release]; // Do not forget this line to avoid memory leak 
+0

嗨,我知道這是近一年的答案。我試過這種方法,它不起作用。它不寫入plist。還是它甚至永久地將它寫入plist? – 2011-08-31 07:13:12

+0

@MelvinLai,它應該工作。兩個可能的問題 - 你試圖寫入無效路徑(或者你沒有寫權限的地方),或者你的數組包含非plist對象(plist對象是NSString,NSArray,NSDictionary,NSNumber ...) – Vladimir 2011-08-31 07:20:14

+0

路徑是正確的,我可以成功地閱讀plist,但不能在上面寫。關於權限,我在哪裏設置?在獲取信息時右鍵單擊?並且我正在使用nsstring寫入plist,有沒有辦法檢查plist是否成功更新? – 2011-08-31 08:07:00

0

在我的項目,該詞典數據包括零,例如:

{ 
"category_id" = 29; 
    "category_name" = "\U5f69\U6f2b"; 
    coverurl = "<null>"; 
    position = 29; 
} 

所以writetofile,返回值始終爲false。