данные unarchivingError пусты;Вы забыли отправить -finishEncoding - PullRequest
0 голосов
/ 30 октября 2019

У меня есть контроллер TableView, который получает заголовок для каждой ячейки. Класс заголовка - это NSobject, который соответствует NSSecureEnocding. Когда я вставляю новый объект, я создаю новый заголовок и использую setTitle: forKey, чтобы сохранить NSData во вложенную папку в папке «Документы» приложения. Затем в ячейке tableView запустите метод: getTitle: forKey.

Я получаю сообщение об ошибке в консоли: getTitleForkey unarchivingError Error Domain = NSCocoaErrorDomain Code = 4864 "*** - [NSKeyedUnarchiver _initForReadingFromData: error: throwLegacyEx]: данные пусты; вы забыли отправить -finishEncoding в NSKeyedArchiver? "

Я немного n00b, особенно в отношении NSKeyedArchiver, но куда я должен отправить -finishEncoding в NSKeyedArchiver

Я посмотрел в документации Apple по NSKeyedArchiver (https://developer.apple.com/documentation/foundation/nskeyedarchiver?language=objc), который говорит мне, что мне нужно вызвать готовое кодирование после того, как я сохранил файл, но я не уверен, где его вызвать.

Ваша помощь очень ценится!

Вот мой архивКод:

NSArray *dirPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                    NSUserDomainMask, YES);
NSString *docsDir = dirPaths[0];
NSString *titlesPath = [docsDir stringByAppendingPathComponent:@"/Titles"];

NSString *fileName = [key stringByAppendingString:@".tpt"];
NSString* path = [titlesPath stringByAppendingPathComponent:fileName];

NSData *file;
file = [NSKeyedArchiver
        archivedDataWithRootObject:title
        requiringSecureCoding:YES
        error:nil];
[[NSFileManager defaultManager] createFileAtPath:path
                                        contents:file
                                      attributes:nil];

Я являюсь сообщениями:

unarchivingError Error Domain = NSCocoaErrorDomain Code = 4864 "*** - [NSKeyedUnarchiver _initForReadingFromData: error: throwLegacyExceptions:]: данные пусты; Вы забыли отправить -finishEncoding в NSKeyedArchiver?

...