因此,我的应用程序查询了一个 Amazon Dynamo DB 数据库并检索了几千字节的数据。我希望应用程序做的是第一次下载所有内容,然后每次下载一个时间戳,看看它是否有最新版本的数据。所以我只需要每隔一段时间下载一次数据,我正在尝试使用 NSKeyedArchiver 来存档我正在下载的数组。我已经尝试了这三种不同的方法,但它们都不能在 iPhone 上运行,尽管其中两种可以在模拟器上运行。
[NSKeyedArchiver archiveRootObject:self.dataArray toFile:@"dataArray.archive"];
这不适用于模拟器或实际的 iphone。这种方法的结果是否定的。
我使用的下一件事是完整路径:
[NSKeyedArchiver archiveRootObject:self.dataArray toFile:@"Users/Corey/Desktop/.../dataArray.archive"];
这适用于模拟器,但不适用于 iPhone。我的猜测是,编译时,文件系统看起来不同(并且显然没有相同的路径)。所以接下来我尝试了:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"dataArray" ofType:@".archive"];
[NSKeyedArchiver archiveRootObject:self.dataArray toFile:filePath];
再一次,这在模拟器上有效,但在 iphone 上失败。在写入存档之前,我已经确认所有数据都在 self.dataArray 中,并在写回存档后确认数组为零(在 iphone 版本中)。有什么想法吗?有没有更好的方法来做文件路径?