RestKit:布尔值
RestKit: Values to BOOL
我有一个 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,所以我真的不知道我应该在这里做什么。
如有任何帮助,我们将不胜感激!
您不能显式转换,因为 BOOL
不是原始类型。检查所需的输出是否为字符串 "false"/"true" 而不是 t/f
的实际值
我有一个 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,所以我真的不知道我应该在这里做什么。
如有任何帮助,我们将不胜感激!
您不能显式转换,因为 BOOL
不是原始类型。检查所需的输出是否为字符串 "false"/"true" 而不是 t/f