我想将自身不符合NSCoding
的对象集合中的摘录序列化到文件中。如果不将收集的对象转换为中间表示(符合NSCoding
),那么实现此目的的最佳方法是什么?出现(明显)问题,因为NSKeyedArchiver
需要唯一键,并且iOS上没有NSArchiver
。
例如,以下操作无效,因为在重用键时会在循环内覆盖值。从某些循环索引计算唯一键字符串是可能的,但是非常麻烦:
for (MyObject *object in myObjects) {
NSString *someString = myObject.someString; // excerpted string
[archiver encodeObject: someString withKey: @"someString"]
}
答案 0 :(得分:0)
一种方法是将提取的例外编码为数组:
NSMutableArray *extractedStrings = [NSMutableArray array];
for (MyObject *object in myObjects) {
[extractedStrings addObject:object.someString];
}
[archiver encodeObject:extractedStrings forKey:@"extractedStrings"];
答案 1 :(得分:0)
在这种情况下,添加符合NSCoding
的类别已被证明是最佳解决方案:
@interface MyClass (Coding) <NSCoding>
// ...