クラスのプロトコルを実装しました。サブクラス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" をロードできませんでした」というエラー ウィンドウを表示します。このエラーがどこからトリガーされているか、またはそれに関するドキュメントが見つかりません。
それがどこから来たのか、またはどこに文書化されているのか知っている人はいますか?
ありがとう
リー