将数据写入plist

时间:2011-05-26 20:29:50

标签: iphone mapkit plist

我想从plist中读取数据,添加一些元素并将数据写入plist。(更新plist)。

我想让plist持有一个字典数组,将这个数组读入我的应用程序,添加字典然后将数组写回plist。

这是怎么做到的?我也不确定在应用程序首次启动时在何处以及如何创建plist。还是应该从一开始就放在捆绑中?

另一件我不确定的事情是,如果plist词典可以保持例如CLLocations作为键的值?它会被正确保存还是需要将CLLocation分解为lat和lon值?

由于

1 个答案:

答案 0 :(得分:6)

从plist创建字典的最简单方法是使用方法dictionaryWithContentsOfFile:,例如,从资源加载plist:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyPlist" ofType:@"plist"];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];

编写一个plist同样简单:

[dict writeToFile:filePath atomically:YES];

(请注意,您无法写入应用的资源,因此您必须创建不同的路径,例如在文档目录中,请参阅NSSearchPathForDirectoriesInDomains

Plists只能包含NSDictionaryNSArrayNSNumberNSString的实例,因此您无法在不转换的情况下将CLLocation放入Plist中。如果您需要保存非Plist对象,请查看NSKeyedArchiver。它可以从采用NSData协议(NSCoding协议)的任何内容创建文件和CLLocation对象。