提问人:meisel 提问时间:7/14/2013 最后编辑:akashivskyymeisel 更新时间:3/4/2016 访问量:2616
MTL中的MTL模式?
MTLModels within MTLModels?
问:
我有一个返回对象的 JSON 的 Web 服务,在该对象中有一个其他对象的列表。我怎样才能让 Mantle 为每个嵌套对象创建一个对象,而不是为每个对象提供字典?
答:
12赞
akashivskyy
8/16/2013
#1
这可以使用 Mantle 前段时间推出的 tranformer 来完成。mtl_JSONDictionaryTransformerWithModelClass:
让我们看一下 Mantle 项目自述文件本身的例子:
@interface GHIssue : MTLModel <MTLJSONSerializing>
@property (nonatomic, strong, readonly) GHUser *assignee;
@end
@implementation GHIssue
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"assignee": @"assignee",
};
}
+ (NSValueTransformer *)assigneeJSONTransformer {
return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:[GHUser class]];
}
@end
假设是符合协议的子类,一切都应该完美运行。GHUser
MTLModel
MTLJSONSerializing
更新:上述解决方案现已弃用。现在使用的正确方法是
return [MTLJSONAdapter dictionaryTransformerWithModelClass:GHUser.class];
在“assigneeJSONTransformer”方法中。
评论
1赞
Borut Tomazin
10/6/2014
如果被分派者字段为空/空,则此操作失败。在这种情况下,我该如何检查并跳过转换?
评论