Строка загрузки NSKeyedUnarchiever приводит к сбою приложения при запуске
У меня проблема с загрузкой объекта с помощью NSKeyedUnarchiever.
Мой объект - это NSDictionary, который содержит несколько объектов, таких как массивы, и некоторые мои собственные. Все они соответствуют протоколу NSCoding.
Я сохраняю свой объект так:
[NSKeyedArchiver archiveRootObject:myDictionary toFile:path];
Если я загружаю Объект в том же запуске с этим кодом:
myDictionary = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
все работает.
Но когда я закрываю приложение и снова открываю его, оно вылетает прямо на этой линии.
У кого-нибудь есть идеи, что не так?
1 ответ
Решение
Убедитесь, что ваше сохранение прошло успешно:
if (![NSKeyedArchiver archiveRootObject:myDictionary toFile:path])
{
// saving failed for some reason
return;
}
Также убедитесь, что файл существует, прежде чем пытаться разархивировать его:
if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
// file does not exist at path (deleted?)
return;
}