почему [NSFileHandle fileHandleForReadingAtPath:] возвращает nil, когда я разархивировал объект из файла - PullRequest
0 голосов
/ 02 апреля 2019

Я определил класс и получил экземпляр объекта (реализация класса - протокол nscoding). Затем я сохраняю объект с помощью NSKeyedArchiver в файле, когда приложение завершается. Я разархивирую информацию из файла при запуске приложения.Я могу успешно получить экземпляр класса, и значение переменных-членов является правильным. Существует объект NSString, представляющий путь к файлу, затем я вызываю [NSFileHandle fileHandleForReadingAtPath: self.filePath], но возвращаемое значение всегда равно нулю, и файл существует, Я не знаю почему, кто-нибудь знает это?

объект класса:

@interface NormalOperation : NSObject @property(assign,nonatomic) long long trunkCount; @property(retain,nonatomic) NSString* filePath;

serialize :

[NSKeyedArchiver archiveRootObject:self.sessionAr toFile:userTransSessionPath];

sessionAr - nsarray, объект nsarray - nsdictionary, и есть ключ для хранения экземпляра класса.

затем десериализация:

[NSKeyedUnarchiver unarchiveTopLevelObjectWithData:dataS error:nil]

, затем в десериализации экземпляра класса и вызова функции экземпляра класса, чтения данных файла, тогда возвращаемое значение всегда равно nil.

[NSFileHandle fileHandleForReadingAtPath:self.filePath];

...