使用 JsonModel 存档 UIImage

archive UIImage with JsonModel

情况是这样的: 我从API获取数据的时候用JsonModel把json转成模型,挺好的

而且我要对一些数据进行持久化存储,最后我选择了NSKeyedArchive和NSKeyedUnarchive来保存和获取数据。 重点来了,JsonModel已经符合了NSCoding,所以我不用再写代码去应用NSCoding了。我归档和取消归档一些基本数据,效果很好。

但是数据模型中有一个UIImage 属性,当我归档数据模型时,问题来了,归档没有完成。 (好像JsonModel不支持UIImage编码???)

当它抛出时,代码变为

@throw [NSException exceptionWithName:@"Value transformer not found"
                                                   reason:[NSString stringWithFormat:@"[JSONValueTransformer %@] not found", selectorName]
                                                 userInfo:nil];

所以有人知道我应该怎么做才能解决这个问题吗?

提前致谢!

你是对的 - JSONModel 不支持 UIImage 实例的(反)序列化。您应该实现自定义数据转换器 (JSONValueTransformer),as shown in the readme:

@implementation JSONValueTransformer (CustomTransformer)

- (UIImage *)UIImageFromNSString:(NSString *)string {
    return nil; // transformed object
}

- (NSString *)JSONObjectFromUIImage:(UIImage *)image {
    return nil; // transformed object
}

@end