2010-11-05 77 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。