2014-07-20 41 views
1

所以我实现了这两个功能将数据保存在我的应用程序的工作原理:的NSKeyedArchiver用模拟器而不是实际的设备

- (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的协议。

回答

2

您正在错误地构建您的路径。

此:

return [documentDirectory stringByAppendingString:@"items.archive"]; 

需求是:

return [documentDirectory stringByAppendingPathComponent:@"items.archive"]; 

您的原始代码产生类似的路径:

一些路径的应用程序/ Documentsitems.archive

注意文件名前没有斜线。

相关问题