Iphone 无法编辑程序生成的iOS plist

Iphone 无法编辑程序生成的iOS plist,iphone,ios,plist,Iphone,Ios,Plist,我正在iOS应用程序中创建一个plist,该plist在应用程序第一次运行时填充了一些默认值(因为该文件不存在)。现在我正在测试一个案例,在一些信息被改变之后。如果我在OS X的属性列表编辑器中打开iPhone模拟器应用程序文档文件夹中的plist文件(~/Library/Application Support/iPhone模拟器/4.2/Applications/SOME-LONG-HASH/documents/mystuff.plist),进行更改,然后保存它,iOS应用程序将无法重新读取并

我正在iOS应用程序中创建一个plist,该plist在应用程序第一次运行时填充了一些默认值(因为该文件不存在)。现在我正在测试一个案例,在一些信息被改变之后。如果我在OS X的属性列表编辑器中打开iPhone模拟器应用程序文档文件夹中的plist文件(~/Library/Application Support/iPhone模拟器/4.2/Applications/SOME-LONG-HASH/documents/mystuff.plist),进行更改,然后保存它,iOS应用程序将无法重新读取并覆盖它,就好像它不存在一样

是否无法编辑iOS plist,或者我的做法是否有误?我似乎在苹果的文档中找不到任何东西

作为参考,我正在保存一本这样的词典

[NSKeyedArchiver archiveRootObject:dict toFile:myFilePath];
NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilePath];
像这样访问它

[NSKeyedArchiver archiveRootObject:dict toFile:myFilePath];
NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilePath];

如果词典仅包含字符串、数字、数组和词典,则应使用NSDictionary方法writeToFile:Atomicaly:和initWithContentsOfFile:保存和加载数据。您的问题可能是由于属性列表编辑器以XML格式编写文件,而NSKeyedUnachiver使用二进制格式造成的。如果在应用程序中另存为…,则可以指定类型。

我仔细检查了属性列表编辑器,属性列表编辑器以读取它的格式保存plist。不过为了确定,我打开了我的应用程序生成的一个新副本,修改了我想更改的存储BOOL(基本上未选中它),并将其另存为,确保选择了二进制。我仍然遇到同样的问题,NSKeyedUnachiver在应用程序中返回nil,plist用默认值重新生成。我将尝试writeToFile和initWithContentsOfFile,但字典中的值是我自己的类,并且都使用NSCoding,因此我不确定它是否有效。如果使用自己的类,则必须像使用一样使用archiver。键控archiver不使用plist格式。它使用编辑器将打开的类似格式,但保存时编辑器将另存为plist,而unarchiver无法读取plist。