繁体   English   中英

在我的应用程序包中编写NSDictionary到plist

[英]writing NSDictionary to plist in my app bundle

我正在尝试将一个NSDictionary写入plist,但是当我打开plist时,没有数据写入它。 从日志中我的路径看起来正确,我的代码非常标准。 有任何想法吗?

NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", @"value3", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

for (id key in dictionary) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

NSString *path = [[NSBundle mainBundle] pathForResource:@"FormData" ofType:@"plist"];
NSLog(@"path:%@", path);

[dictionary writeToFile:path atomically:YES];

约翰是对的 - 你不能修改你的应用程序包。 保存字典的位置有两个很好的选择:文档目录,当用户同步设备时由iTunes备份; 或者没有备份的caches目录。 如果您不需要备份数据,请将其放在缓存中,这样您就不会减慢同步速度。 您可以像这样获取目录路径:

NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString *cachesDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

它不会被保存,因为您无法写入应用程序的包中。 例如,将文件保存在文档文件夹中的其他位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM