Так что я получил исключение при попытке реализовать NSKeyedUnarchiver
, потому что я пытаюсь сохранить массив пользовательских объектов с помощью NSUsersDefaults
. Поскольку я продолжал получать ошибку, говоря, что у меня были не-свойства, я решил архивировать их в NSData
. Теперь я получаю эту ошибку: «непонятный архив».NSData Exception - «непонятный архив»
Вот как я архивирование (я проверил все объекты, чтобы быть пустыми, не из них):
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:anotherArray];
for (int i = 0; i < array.count; i++) {
CustomObj *obj = [array objectAtIndex:i];
NSData *newdata = [NSKeyedArchiver archivedDataWithRootObject:obj];
[array replaceObjectAtIndex:i withObject:newdata];
}
NSArray *newArray = [[NSArray alloc] initWithArray:array];
[coder setObject:newArray forKey:@"key"];
Вот как я разархивировав (опять все проверяется на нуль):
if (!arrayM) { arrayM = [[NSMutableArray alloc] init]; NSLog(@"initialized"); }
else {
for (int i = 0; i < arrayM.count; i++) {
NSData *data = [arrayM objectAtIndex:i];
--> The exception happens here: CustomObj *obj = [NSKeyedUnarchiver unarchiveObjectWithData:data];
[arrayM replaceObjectAtIndex:i withObject:obj];
}
}
Он по-прежнему дает мне ту же ошибку, когда я изменил ее на текущий код выше. И у меня есть методы кодирования. – ManOx
См. Мое редактирование .... – borrrden
Я тоже попробовал, он вернул null для моих объектов. – ManOx