В предыдущей версии моего приложения macOS я сохранял свои файловые документы таким образом
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object];
[data writeToFile:path atomically:YES];
Затем я читал и разархивировал файл таким образом
object = [NSKeyedUnarchiver unarchiveObjectWithData:data];
-
Теперь эти два метода устарели, поэтому я должен заархивировать этот файл, используя новый метод
[NSKeyedArchiver archivedDataWithRootObject:object requiringSecureCoding:NO error:nil];
, и я должен разархивировать этот файл следующим образом
classes = @[[NSArray class], [NSMutableArray class], [NSDictionary class], [NSMutableDictionary class], [NSDate class], [NSNumber class], [NSString class], [NSData class]];
[NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:classes] fromData:x error:nil];
Новые два метода работают, если используются вместе. Проблема в том, что новый метод
[NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:classes] fromData:x error:nil];
не разархивирует файлы предыдущих версий, заархивированные старым методом
[NSKeyedArchiver archivedDataWithRootObject:object];
Я не хотел бы продолжать использовать устаревший метод [NSKeyedUnarchiver unarchiveObjectWithData: data]; разархивировать мои старые файлы.
Знаете ли вы, как разархивировать файлы предыдущей версии, используя устаревший метод? Спасибо.