Objective-C:将存档数据保存到文件崩溃

时间:2016-03-14 15:07:22

标签: objective-c file serialization nskeyedarchiver

我的询问是这样的:我正在保存并将自定义对象加载到文件中。加载和创建包含数据的文件可以正常工作,但是,在加载文件后,再次保存崩溃。长话短说,保存已加载的文件会导致保存时崩溃。 崩溃将我发送到我的自定义对象m file:

- (void)encodeWithCoder:(NSCoder *)encoder {
     [encoder encodeInteger:*(time) forKey:@"time"];
     [encoder encodeInteger:*(location) forKey:@"location"];
}   

// ==== 从文件加载数据:

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
     NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
initWithContentsOfFile:filePath];
     globals.mainData = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];    

// ==== 保存到当前文件 我的断点阻止了我:NSData * data = ... //然后崩溃

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:currentFileName];

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:globals.mainData];   //crashes here
    BOOL saved = [data writeToFile:filePath options:NSDataWritingAtomic error:nil];

    if (saved) {
        NSLog(@"Saved %@", currentFileName);
    }else{
        NSLog(@"Error - code 2 - Failure to save data");
    }

任何建议都会很棒,非常感谢!

0 个答案:

没有答案