MTLModel中的MTL模型?

mei*_*sel 6 ios github-mantle

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

aka*_*kyy 12

这可以使用mtl_JSONDictionaryTransformerWithModelClass:Mantle不久前推出的变换器来完成.

让我们看看Mantle项目自述文件中的示例:

@interface GHIssue : MTLModel <MTLJSONSerializing>

@property (nonatomic, strong, readonly) GHUser *assignee;

@end
Run Code Online (Sandbox Code Playgroud)
@implementation GHIssue

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{
        @"assignee": @"assignee",
    };
}

+ (NSValueTransformer *)assigneeJSONTransformer {
    return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:[GHUser class]];
}

@end
Run Code Online (Sandbox Code Playgroud)

假设GHUserMTLModel符合MTLJSONSerializing协议的子类,一切都应该完美.

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

return [MTLJSONAdapter dictionaryTransformerWithModelClass:GHUser.class];
Run Code Online (Sandbox Code Playgroud)

在'assigneeJSONTransformer'方法中.