我有一组具有不同类A,B和C的对象(都共享一个共同的超类):
// Encoded collection
@[A, B, C]
此集合通过NSCoding进行存档和取消存档。 如果其中一个类已从项目中删除,有没有办法部分取消归档此集合?
似乎decodeObjectForKey:
失败并在遇到无法解码的对象时返回nil
个对象。有没有办法只获得能够解码的东西?我理解为什么这种行为对于一个对象有意义,但对于一个集合却没有意义。
// Expected decoding when A class definition is missing:
@[B, C]
// Actual:
nil
答案 0 :(得分:1)
如果您想要使用的类名和类已知,那么您可以使用NSKeyedUnArchiver
[unarchiver setClass:MySuperClass.class forClassName:@"C"]
方法指定翻译,因此您可以使用{{1}之类的内容}