Mantle是否已将JSON中的int值0和1转换为objective-C BOOL值?
我有一个模特:
@interface MyModel : MTLModel
@property (nonatomic, readonly) BOOL isValid;
@end
让我们说JSON是:
{ is_valid: 0 } OR { is_valid: 1 }
我想知道Mantle是否会自动将is_valid
转换为Objective-C BOOL值,我必须明确提及以下内容:
+ (NSValueTransformer)isValidJSONTransfermer {
return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{@(0) : @(NO),
@(1) : @(YES)}];
}
答案 0 :(得分:6)
是的,这是为您处理的;你不需要使用映射变换器。
Mantle在内部调用setValue:forKey:
来设置值。 0或1将是NSNumber
,而setValue:forKey:
将使用boolValue
上的NSNumber
来获取值,因为您的属性被声明为BOOL
键值编码的这种行为在Scalar and Structure Support下描述。
答案 1 :(得分:2)
如果需要将字符串转换为布尔值,请使用此转换器:
+ (NSValueTransformer *)sectionJSONTransformer {
return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{@"0" : @(NO),
@"1" : @(YES)}];
}
答案 2 :(得分:1)
+ (NSValueTransformer *)awesomeJSONTransformer {
return [NSValueTransformer valueTransformerForName: MTLBooleanValueTransformerName];
}