【问题标题】:iphone write to file failsiphone写入文件失败
【发布时间】:2010-08-02 10:45:00
【问题描述】:

我正在将一些数据写入 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。

有人可以帮帮我吗?

【问题讨论】:

    标签: ios objective-c iphone xcode storage


    【解决方案1】:

    为什么要写入资源目录?你查过this吗?

    【讨论】:

      【解决方案2】:

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

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

      这是 iOS 的 sandbox approach 安全性的一部分。解决办法是write to the /tmp, Documents or Cache folder, instead

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 2011-03-29
        • 2015-02-05
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        相关资源
        最近更新 更多