Iphone 通过writeToFile将NSMutable数组写入plist文件

Iphone 通过writeToFile将NSMutable数组写入plist文件,iphone,nsmutablearray,writetofile,Iphone,Nsmutablearray,Writetofile,我有一个名为playerData的plist文件,它在索引0处包含一个number对象,表示完成的最高级别。加载视图后,我读取了整个游戏逻辑中使用的该对象的整数值。如果玩家赢了游戏,我想增加这个数字并将其写入plist文件。这是我的代码(包含在if语句中) 日志可以工作,因此我知道if语句的条件已经满足,并且该值与以前在plist文件中的值不同,但由于某种原因,该数据没有被写入该数据 我对这一点比较陌生,所以我可能犯了一个简单、愚蠢的错误,我似乎找不到答案。谢谢你的帮助 您正在尝试写入捆绑包,该

我有一个名为playerData的plist文件,它在索引0处包含一个number对象,表示完成的最高级别。加载视图后,我读取了整个游戏逻辑中使用的该对象的整数值。如果玩家赢了游戏,我想增加这个数字并将其写入plist文件。这是我的代码(包含在if语句中)

日志可以工作,因此我知道if语句的条件已经满足,并且该值与以前在plist文件中的值不同,但由于某种原因,该数据没有被写入该数据


我对这一点比较陌生,所以我可能犯了一个简单、愚蠢的错误,我似乎找不到答案。谢谢你的帮助

您正在尝试写入捆绑包,该捆绑包在安装应用程序后是只读的。您应该改为在应用程序沙箱中的某个地方进行写入,例如在
库/应用程序支持
目录中。(您可以将
-[NSFileManager URLsForDirectory:inDomains://code>与NSApplicationSupportDirectory一起使用来查找此路径;在尝试写入目录之前,请确保创建该目录。)

非常感谢,我认为这很简单,但正如我所说的,这对我来说是一个全新的东西。再次感谢您的快速和有用的回复。可能重复:
levelNumber++;
NSNumber *levelNSNum = [[NSNumber alloc] initWithInteger:levelNumber];
[playerData replaceObjectAtIndex:0 withObject:levelNSNum];
[playerData writeToFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"PlayerData.plist"] atomically:YES];
NSLog(@"%i should be written to file", levelNumber);