[英]NSKeyedArchiver works with simulator but not actual device
因此,我实现了这两个功能以将数据保存在我的应用程序中:
- (NSString*)itemArchivePath
{
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentDirectory = [documentDirectories firstObject];
return [documentDirectory stringByAppendingString:@"items.archive"];
}
-(BOOL)saveChanges
{
NSString* path = [self itemArchivePath];
return [NSKeyedArchiver archiveRootObject:self.highScores toFile:path];
}
它可以将所有内容完美地保存在iOS模拟器上,但是当我在实际的iPhone上运行它时,它什么也不会保存。 大多数应用程序都是快速编写的,但我认为那不是问题。 而且我确实实现了NSCoding
的协议。
您正在错误地构建路径。
这个:
return [documentDirectory stringByAppendingString:@"items.archive"];
需要是:
return [documentDirectory stringByAppendingPathComponent:@"items.archive"];
您的原始代码所产生的路径类似于:
app / Documentsitems.archive的一些路径
请注意,文件名之前没有斜杠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.