在你链接的项目中,BOOLFromNSString
方法如下:
-(NSNumber*)BOOLFromNSString:(NSString*)string
{
if (string != nil &&
([string caseInsensitiveCompare:@"true"] == NSOrderedSame ||
[string caseInsensitiveCompare:@"yes"] == NSOrderedSame)) {
return [NSNumber numberWithBool:YES];
}
return [NSNumber numberWithBool: ([string intValue]==0)?NO:YES];
}
这意味着它将返回YES
以下不区分大小写的值:true
, yes
, [any number that isn't 0]
。
YES
它在任何平台上返回的事实T
是神奇的,而不是“正确的”。您应该使用预期值之一。
编辑:您的子类:
#import "JSONModelTransformations/JSONValueTransformer.h"
@interface MyParser : JSONValueTransformer
@end
@implementation MyParser
- (NSNumber *)BOOLFromNSString:(NSString *)string {
if (string != nil && [string caseInsensitiveCompare:@"t"] == NSOrderedSame) {
return [NSNumber numberWithBool:YES];
}
return [super BOOLFromNSString:string];
}
@end