objective-c - CoreData 对象无法识别 BOOL 值

标签 objective-c ios core-data boolean nsnumber

我遇到了一个关于 CoreData 和 boolean 值的奇怪问题: 在我的数据模型中,我将一个实体的属性设置为 BOOL。后来我设置了 theEntity.theBooleanValue = [NSNumber numberWithBool:NO] 并保存了对象。到目前为止一切顺利,但是当我尝试使用 if ([theObject valueForKey:@"theBooleanValue"] == [NSNumber numberBOOL:NO]){//do something} 来检查已保存属性的值时它永远不会跳入 if 子句。但是如果我检查 == [NSNumber numberWithInt:0] 它的工作...所以基本上我尝试保存一个 bool 但它被认为是一个 int ... 知道那里发生了什么吗?

最佳答案

对我来说,检查 [[theObject valueForKey:@"theBooleanValue"] boolValue] 更有意义。即,

if(![[theObject valueForKey:@"theBooleanValue"] boolValue])
{
    // Your code
}

我认为 == 运算符比较的是对象指针,而不是数字本身。要比较数字,有一个单独的方法 [NSNumber isEqualToNumber:]

关于objective-c - CoreData 对象无法识别 BOOL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101548/

相关文章:

objective-c - 电影播放器​​激活状态错误(1)

iphone - Objective-C 解密 AES 128 cbc 十六进制字符串

ios - 捕捉屏幕的一部分需要时间

ios - 如何使用 RestKit 发送 bool 值?

swift - (Swift) 核心数据移动行 - 无效更新错误

iOS:从核心数据中删除对象会在 TableView 中删除它,但不会在应用程序的其他部分中删除

ios - 有谁知道为什么在 ios/cordova 中抛出这个异常?

iphone - 比较 google place API mapPoints 与核心数据对象 mapPoints - mapView

ios - 表达式解析为未使用的函数:CGContext.saveGState

ios - 如何使用核心图向散点图添加动画?