您不能直接保存BOOL
价值,NSDictionary
因为它不是对象。因此,首先您必须将其更改,NSNumber
然后将其保存,NSDictionary
然后进行比较isKindOfClass:[NSNumber Class]
而不是比较[BOOL class]
.
例子:-
BOOL value = YES;
NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:[NSNumber numberWithBool:value],@"Bool", nil];
id val = [dict valueForKey:@"Bool"];
if([val isKindOfClass:[NSNumber class]])
{
//NSNumber Class
}
编辑:
您不能直接将BOOL
值转换为NSString
。如果您想要格式BOOL
的价值,NSString
您将不得不制作自己的方法。这是一个使用macro
.
定义这个macro
你想在哪个类中转换一个BOOL
值NSString
。
#define NSStringFromBOOL(aBOOL) aBOOL? @"YES" : @"NO"
然后简单地称之为 -
NSString *bool_string = NSStringFromBOOL(YES);
NSLog(@"%@",bool_string);
它将打印YES
而不是“1”。