я реализовал протокол NSCoding
для моих классов, и я использую следующий код в моем NSDocument
подкласса для сохранения и загрузки:NSCoding и NSKeyedArchiving - «Документ не может быть загружен»
- (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 »не может быть загружен». Я не могу найти, откуда эта ошибка запускается, и никакой документации по ней.
Знает ли кто-нибудь, откуда он взялся или знает, где он может быть задокументирован?
Благодаря
Lee
Gah! Теперь я чувствую себя глупо. Спасибо, что поймал его. Я пишу следующую версию посланника (envoy.scribbleware.net) – Tangler
@LeeWalsh Нет проблем. Пожалуйста, примите ответ, если он решит вашу проблему. Недостаточно шахматных продуктов для Mac, так хорошо сделано! – trojanfoe