我创建了一个将属性列表序列化到文件中的应用程序。我从用户那里收到一些报告,说保存的数据有时会丢失。下面的代码有问题吗?
也许如果文件确实存在但被阻止并且 fileExistsAtPath:
返回 NO
,那么它会被重新创建吗?
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
plistPath = [rootPath stringByAppendingPathComponent:@"BookmarkData.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath])
{
[[NSFileManager defaultManager] createFileAtPath:plistPath contents:nil attributes:nil];
}
最佳答案
您不会显示调用该代码的位置。没有它,就无法确定。
如果您只是在应用程序终止时这样做,那么这很可能是间歇性数据丢失的原因。永远不能保证您的应用程序将以任何友好、受控的方式终止。用户可能会强制终止,设备可能会重置,应用程序可能会崩溃等等......
关于ios - 安全地访问 iOS 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594028/