gpt4 book ai didi

objective-c - 如何测试 NSCFBoolean 值?

转载 作者:太空狗 更新时间:2023-10-30 03:08:23 25 4
gpt4 key购买 nike

从 JSON 接收数据,如下所示:

{
myself = 1;
"id" = 123;
}

并且我把它放到了一个N​​SDictionary *messageDic中,我还定义了一个值*isMyself来接收自己的值

Boolean isMyself = [messageDic objectForKey:@"myself"];

但它不起作用。

所以我打印日期类型,

const char* className = class_getName([[messageDic objectForKey:@"myself"] class]);
NSLog(@"yourObject is a: %s", className);
NSLog(@"Size of BOOL %d", sizeof(isMyself));
NSLog(@"Size of BOOL %@", [messageDic objectForKey:@"myself"]);

结果是:

2012-08-01 17:41:48.886  yourObject is a: __NSCFBoolean
2012-08-01 17:41:48.887 Size of BOOL 1
2012-08-01 17:41:48.887 Size of BOOL 0

下面的 if 部分也不起作用。

if ([messageDic objectForKey:@"myself"] == 0)

我试过了

NSCFBoolean *isMyself = [messageDic objectForKey:@"myself"];

我收到上面的错误表格。

我的问题是我应该如何测试[messageDic objectForKey:@"myself"]的值? __NSCFBoolean 是什么?

谢谢!

最佳答案

你从 [messageDic objectForKey:@"myself"] 得到的结果是一个 NSNumber,然后你需要将结果转换为 Bool。所以试试下面:

if ([[messageDic objectForKey:@"myself"]boolValue] == NO)

关于objective-c - 如何测试 NSCFBoolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11756795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com