gpt4 book ai didi

ios - iOS 设备上的编码对象问题

转载 作者:行者123 更新时间:2023-11-28 21:45:30 24 4
gpt4 key购买 nike

我正在制作一个应用,它使用编码在文档目录中存储对象

在 iOS 模拟器上,对象被完美保存,如果我关闭应用程序并返回到它,所有数据都会恢复,没有问题。

但今天我在 iPhone 5s 上试用了我的应用程序,当我关闭应用程序并再次返回时,对象没有被保存所有数据只在真实设备上被删除,这是什么问题?

我正在使用此方法获取目录路径:

- (NSString *)pathForTask
{
NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [documentDirectories firstObject];
return [documentDirectory stringByAppendingString:@"Tasks"];
}

存档:

NSString *path = [self pathForTask]; 
[NSKeyedArchiver archiveRootObject:self.privateTasks toFile:path];

取消归档:

NSString *path = [self pathForTask]; 
_privateTasks = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

最佳答案

以下代码行导致了您的问题:

return [documentDirectory stringByAppendingString:@"Tasks"];

返回路径的结果类似于:

.../DocumentsTasks

请注意缺少斜杠。

将行更改为:

return [documentDirectory stringByAppendingPathComponent:@"Tasks"];

这将返回正确的路径,您的代码将在设备上运行。

它可以在模拟器中运行,因为您最终会在计算机上的某个文件夹中创建一个名为 DocumentTasks 的文件。但在真实设备上,由于沙盒的原因,此文件试图写入的文件夹是只读的。

关于ios - iOS 设备上的编码对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com