繁体   English   中英

iPhone写入文件失败

[英]iphone write to file fails

我正在将一些数据写入plist文件,但它在设备上失败,但在模拟器中失败。 我迷路了,不知道在哪里寻找解决方案。

这是我的代码:

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。

有人可以帮我吗?

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

但是,这在模拟器上有效,因为您的操作系统将使您几乎可以写入主文件夹中的任何位置,包括应用程序捆绑包文件夹。 OS X功能的限制与iOS的限制不同。

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

为什么要尝试在资源目录中写? 你检查吗?

暂无
暂无

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

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