MTL中的MTL模式?

MTLModels within MTLModels?

提问人:meisel 提问时间:7/14/2013 最后编辑:akashivskyymeisel 更新时间:3/4/2016 访问量:2616

问:

我有一个返回对象的 JSON 的 Web 服务,在该对象中有一个其他对象的列表。我怎样才能让 Mantle 为每个嵌套对象创建一个对象,而不是为每个对象提供字典?

ios github-mantle

评论

1赞 David Snabel-Caunt 9/17/2013
如何在带有 Mantle 的 NSArray 中指定子对象类型的可能重复

答:

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

假设是符合协议的子类,一切都应该完美运行。GHUserMTLModelMTLJSONSerializing

更新:上述解决方案现已弃用。现在使用的正确方法是

return [MTLJSONAdapter dictionaryTransformerWithModelClass:GHUser.class];

在“assigneeJSONTransformer”方法中。

评论

1赞 Borut Tomazin 10/6/2014
如果被分派者字段为空/空,则此操作失败。在这种情况下,我该如何检查并跳过转换?