您不能直接保存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”。