0

我有一组具有不同类 A、B 和 C 的对象(都共享一个共同的超类):

// Encoded collection
@[A, B, C]

该集合通过 NSCoding 归档和取消归档。 如果其中一个类已从项目中删除,是否有办法部分取消归档此集合

当遇到无法解码的对象时,它似乎decodeObjectForKey:失败并返回一个对象。nil有没有办法只获取能够解码的内容?我理解为什么这种行为对对象有意义,但对集合没有意义。

// Expected decoding when A class definition is missing:
@[B, C]

// Actual:
nil
4

1 回答 1

1

如果你想使用的类名和类是已知的,那么你可以使用setClass:forClassName:方法NSKeyedUnArchiver来指定翻译,所以你可以使用类似的东西[unarchiver setClass:MySuperClass.class forClassName:@"C"]

于 2016-02-11T01:40:54.283 回答