在返回对象之前验证每个属性

Rui*_*res 8 objective-c ios github-mantle

在使用Mantle时,是否有可能在返回我们正在创建的对象之前(在这种情况下通过JSON)来验证X和Y属性是否为零?

想象一下这堂课:

@interface Person : MTLModel <MTLJSONSerializing>

@property(nonatomic,strong,readonly)NSString *name;
@property(nonatomic,strong,readonly)NSString *age;

@end
Run Code Online (Sandbox Code Playgroud)

我想要一种方法来验证如果我收到的JSON没有name(由于某种原因在服务器的DB上存在问题),我将返回一个nilPerson,因为没有该属性集创建该对象没有意义.

Dav*_*unt 1

您可以使用MTLJSONSerializing协议方法classForParsingJSONDictionary:返回 nil 而不是无效对象:

// In your MTLModelSubclass.m
//
+ (Class)classForParsingJSONDictionary:(NSDictionary *)JSONDictionary {
    if (JSONDictionary[@"name"] == nil || JSONDictionary[@"age"] == nil) {
        return nil;
    }
    return self.class;
}
Run Code Online (Sandbox Code Playgroud)