1
所以我试图实现NSKeyedUnarchiver
时发生异常,因为我试图用NSUsersDefaults
保存一组自定义对象。因为我不断收到一个错误,说我有非属性,所以我决定将它们归档为NSData
。现在我收到这个错误:“难以理解的存档”。NSData异常 - “难以理解的存档”
这里是我很归档(我测试过的所有对象为空,他们不都):
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