NSKeyedUnarchiver
を使用してカスタムオブジェクトの配列を保存しようとしているため、実装しようとしたときに例外が発生しましNSUsersDefaults
た。プロパティが含まれていないというエラーが発生し続けたため、それらをにアーカイブすることにしましたNSData
。今、私はこのエラーを受け取ります:「理解できないアーカイブ」。
これが私がアーカイブしている方法です(私はすべてのオブジェクトがnullであるかどうかをテストしましたが、どれもnullではありません):
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"];
これが私がアーカイブを解除する方法です(ここでもすべてがnullについてテストされます):
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];
}
}