我的模型中有 Invisible = 0
,我正在尝试使用此行在 BOOL
中获取它。
BOOL invisible = [self.model objectForKey:@"Invisible"];
但不可见是 YES 而不是 NO。我也试过 bool 但它也是如此。我使用 [[self.model objectForKey:@"Invisible"] class]
检查了对象的类,它显示了 _NSCFBoolean。这里出了什么问题?模型是 NSDictionary。
更新
好的,所以我找到了真正的问题。我有 Filter 类,其中我有 getter isInvisible 并且代码是
- (BOOL)isInvisible {
return [[self.model objectForKey:@"Invisible"] boolValue];
}
当我第一次调用它时,它返回 NO。哪个好。现在我立即再次调用它并返回
(lldb) po filter.isInvisible
NO
(lldb) po filter.isInvisible
<nil>
两个 po 命令之间只有 1 秒的差异。
最佳答案
= [self.model objectForKey:@"Invisible"];
这将返回一个 NSNumber
对象。如果你想要一个 BOOL
原语,你可以通过 boolValue
方法得到它
= [[self.model objectForKey:@"Invisible"] boolValue];
关于ios - BOOL 在 objective-c 中为值 0 返回 YES?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59316521/