我有NS_ENUM
,其中包含核对清单的状态。这两个属性为Pending
和Completed
。
typedef NS_ENUM (NSUInteger, ChecklistStatus) { Pending, Completed };
我正在尝试获取状态并将其映射到true / false值。我这样做的方法是通过RKValueTransformer。
以下是代码:
+(RKValueTransformer *)checklistStatusToBooleanTransformer
{
RKValueTransformer *transformer = [RKBlockValueTransformer valueTransformerWithValidationBlock:^BOOL(__unsafe_unretained Class sourceClass, __unsafe_unretained Class destinationClass) {
return ([sourceClass isSubclassOfClass:[NSNumber class]]);
} transformationBlock:^BOOL(NSNumber *inputValue, __autoreleasing id *outputValue, __unsafe_unretained Class outputClass, NSError *__autoreleasing *error) {
// validate the input
RKValueTransformerTestInputValueIsKindOfClass(inputValue, [NSNumber class], error);
if([inputValue isEqual:@(Completed)]) {
*outputValue = [NSNumber numberWithBool:YES];
} else {
*outputValue = [NSNumber numberWithBool:YES];
}
return YES;
}];
return transformer;
}
我无法将输出值明确地转换为BOOL,所以我真的不知道该怎么做。
非常感谢任何帮助!
答案 0 :(得分:1)
您无法显式转换,因为BOOL
不是基本类型。检查所需的输出是否为字符串“false”/“true”而不是t / f