2011-01-11 21 views
2

我创建一个的plist在与一些默认值首次应用程序运行(因为该文件不存在)填充我的iOS应用。现在我试图在一些信息发生变化之后测试一个案例。如果我打开在iPhone模拟器的应用程序的文件夹中的plist文件(〜/库/应用程序支持/ iPhone模拟器/ 4.2 /应用/ SOME-LONG-HASH /文档/ mystuff.plist)在OS X中的属性列表编辑器,让我改变,然后保存它,iOS应用程序无法重读并覆盖它,就好像它不存在一样。无法编辑程序生成的iOS的plist

是没可能编辑在iOS的plist或我要对这个错误?我似乎无法在Apple的文档中找到任何内容。

仅供参考,我节省了一个NSDictionary这样

[NSKeyedArchiver archiveRootObject:dict toFile:myFilePath]; 

和访问它像这样

NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilePath]; 

回答

1

如果你的字典里只包含字符串,数字,数组和字典,你应该使用NSDictionary方法writeToFile:atomically:和initWithContentsOfFile:保存并加载数据。您的问题可能是由于Property List Editor以XML格式编写文件,而NSKeyedUnarchiver使用二进制格式。如果您在应用程序中另存为...,则可以指定类型。

+0

我仔细检查了和属性列表编辑器保存在它读取它的格式的plist中,只是可以肯定,虽然,我打开我的应用程序生成一个新的副本,修改了存储BOOL我感兴趣的是改变(基本上取消选中它),确实另存为并确保选择了二进制。我还遇到这样的情况NSKeyedUnarchiver在App返回零和的plist再生使用默认值同样的问题。我会尽力的将writeToFile和initWithContentsOfFile但在字典中的值是我自己的类和所有使用NSCoding所以我不知道是否会工作。 – Aaron 2011-01-13 14:26:57