RestKit:BOOL的值

时间:2015-08-04 17:26:52

标签: ios objective-c restkit

我有NS_ENUM,其中包含核对清单的状态。这两个属性为PendingCompleted

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,所以我真的不知道该怎么做。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您无法显式转换,因为BOOL不是基本类型。检查所需的输出是否为字符串“false”/“true”而不是t / f

的实际值