Ios 是否自动将0和1转换为布尔值?
Mantle是否已经将JSON中的int值0和1转换为objective-C布尔值 我有一个模型:Ios 是否自动将0和1转换为布尔值?,ios,objective-c,github-mantle,Ios,Objective C,Github Mantle,Mantle是否已经将JSON中的int值0和1转换为objective-C布尔值 我有一个模型: @interface MyModel : MTLModel @property (nonatomic, readonly) BOOL isValid; @end 假设JSON是: { is_valid: 0 } OR { is_valid: 1 } 我想知道Mantle是否会自动将是否有效转换为Objective-C布尔值,我必须明确提及以下内容: + (NSValueTransforme
@interface MyModel : MTLModel
@property (nonatomic, readonly) BOOL isValid;
@end
假设JSON是:
{ is_valid: 0 } OR { is_valid: 1 }
我想知道Mantle是否会自动将是否有效
转换为Objective-C布尔值,我必须明确提及以下内容:
+ (NSValueTransformer)isValidJSONTransfermer {
return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{@(0) : @(NO),
@(1) : @(YES)}];
}
是的,这是为您处理的;您不需要使用映射转换器 Mantle内部调用以设置值。0或1将是一个
NSNumber
,并且setValue:forKey:
将使用NSNumber
上的boolValue
获取一个值,因为您的属性被声明为BOOL
键值编码的这种行为在下进行了描述。如果需要将字符串转换为布尔值,请使用此转换器:
+ (NSValueTransformer *)sectionJSONTransformer {
return [NSValueTransformer mtl_valueMappingTransformerWithDictionary:@{@"0" : @(NO),
@"1" : @(YES)}];
}
值得怀疑的是,给定的JSON具有布尔数据类型。它是否会自动将
boolean
转换为BOOL?我很可能会改变API。添加一些解释和答案,说明这个答案如何帮助OP解决当前问题
+ (NSValueTransformer *)awesomeJSONTransformer {
return [NSValueTransformer valueTransformerForName: MTLBooleanValueTransformerName];
}