不正确的布尔值

Posted

技术标签:

【中文标题】不正确的布尔值【英文标题】:Incorrect Bool Value 【发布时间】:2012-06-29 03:18:42 【问题描述】:

我正在解析一个 JSON 字符串:

Response: "success":false,"displaymessage":"UserName or Email already exist. Please try again"

我使用的代码是:

  NSLog(@"Result: %@ %@", [responseObject valueForKeyPath:@"success"]? @"YES" : @"NO", [responseObject valueForKeyPath:@"displaymessage"]);

但是我的输出是:

Result: YES UserName or Email already exist. Please try again

我应该得到拒绝。我做错了什么?

【问题讨论】:

【参考方案1】:

valueForKeyPath: 方法返回一个对象,该对象始终非零(因此您看到的是 YES 而不是 NO)。如果我没记错的话,布尔值被包裹在NSNumber 中。您应该从valueForKeyPath: 返回的对象中提取实际的布尔值,如下所示:

[[responseObject valueForKeyPath:@"success"] boolValue]? @"YES" : @"NO"

【讨论】:

以上是关于不正确的布尔值的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 数据框布尔索引中使用“相反布尔值”的正确方法

MySQL、XML 布尔值和整数:不正确的整数值:

函数不返回正确的布尔值

Torch JIT Trace = TracerWarning:将张量转换为 Python 布尔值可能会导致跟踪不正确

为啥我无法将程序中找到的布尔结果的正确值分配给布尔变量并使用结果检查条件?

NSJSONSerialization 未正确映射布尔值