下面是一个代码块,它应该测试字典是否为空,如果不是,则拉出正确的对象。但是,由于某些原因,尽管if检查失败,代码仍然会执行。我不明白NSNull是怎么工作的,还是这是一个苹果bug?

if (svcUser && !(svcUser == (id)[NSNull null])) {
    return [svcUser objectForKey:@"access_level"];
}

控制台响应:
(lldb) print svcUser && !(svcUser == (id)[NSNull null])
(bool) $0 = false
(lldb) continue
-[NSNull objectForKey:]: unrecognized selector sent to instance 0x2b51678

最佳答案

只需检查:

svcUser == [NSNull null]

这是苹果在他们的docs中提到的方法。

关于objective-c - 测试与NSNull的相等性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16600350/

10-12 05:41