iphone写入文件失败

我正在写一些数据到plist文件,但是它在设备上失败了,但是在模拟器中却没有。 我迷路了,不知道在哪里寻找解决scheme。

这是我的代码:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:nameField.text forKey:@"name"]; [dict setObject:emailField.text forKey:@"email"]; BOOL ret = [dict writeToFile:[[NSString alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"]] atomically:YES]; NSLog(@"%d",ret); [dict release]; 

日志在设备上返回0,但在模拟器中返回1。

有人能帮我吗?

你为什么要写资源目录? 你有检查过吗?

这在设备上失败,因为您无法写入应用程序的文件夹文件夹,只能写入/ tmp,Documents和Cache文件夹。 如果用户能够修改该软件包,则该应用程序的数字签名将不再有效,也无法从App Store中可靠地获取完整的应用程序并运行该应用程序。

这可以在模拟器上运行,因为你的操作系统可以让你在家庭文件夹的任何地方写信,包括应用程序包文件夹。 OS X的function不受限于iOS的限制。

这是iOS 沙盒安全方法的一部分。 解决办法是写入/ tmp,Documents或Cache文件夹 。