Cocoa:iOS:fopen有时失败并出现错误:“操作不允许”

时间:2014-07-02 15:44:32

标签: ios objective-c cocoa fopen

我有一种非常奇怪的行为,在我的代码中使用fopen时,有时会出现“不允许操作”错误,有时候一切都运行顺畅。

我的第一个想法是沙箱问题,但在这两种情况下我都将文件写入同一位置。在我关闭它之前,我只运行了4个fopens,所以我不相信我最大化了我的文件描述符。下一批文件将在之前的4个文件被删除后始终运行。

我没有想法如何处理这种模棱两可的行为,并且很想听听你的想法。

谢谢,

尼里

1 个答案:

答案 0 :(得分:3)

可能与设备设置中设置的密码导致的数据保护有关。 如果在设备被锁定并且需要密码时调用fopen,"操作不被允许"将被退回。

在AppDelegate中使用这些事件来识别此场景并停止/启动文件操作:

- (void)applicationProtectedDataWillBecomeUnavailable:(UIApplication *)application;
- (void)applicationProtectedDataDidBecomeAvailable:(UIApplication *)application;

另见: UIApplicationDelegate documentation