不正确的布尔值
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 数据框布尔索引中使用“相反布尔值”的正确方法
Torch JIT Trace = TracerWarning:将张量转换为 Python 布尔值可能会导致跟踪不正确