我已经NSCoding
为我的类实现了协议,并且在我的NSDocument
子类中使用以下代码来保存和加载:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
[[record window] endEditingFor:nil];
return [NSKeyedArchiver archivedDataWithRootObject:self];
}
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError{
@try {
NSLog(@"Loading...");
self = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
@catch (NSException *exception) {
if (outError) {
NSDictionary *d = [NSDictionary dictionaryWithObject:@"The data is corrupted" forKey:NSLocalizedFailureReasonErrorKey];
*outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:d];
}
}
NSLog(@"whiteMoves count: %ld",[whiteMoves count]);
}
一切似乎都运行良好。我可以保存一个文件,当我打开它并单步执行代码时,它似乎都可以解压和解码。但是,在“加载事件”完成后,我的应用程序总是会弹出一个错误窗口,上面写着“无法加载文档“xxx.xxx”。” 我找不到触发此错误的位置,也找不到任何文档。
有谁知道它来自哪里或知道它可能记录在哪里?
谢谢
李