【发布时间】:2016-09-12 14:26:26
【问题描述】:
我正在尝试按 NSNumber 类型的属性选择值,如果 property==intValue 或 property==nil。 但是这段代码忽略了 property==nil 的值。 有什么意义?
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(ANY region.beacons.major == %d OR ANY region.beacons.major = nil)
AND (ANY region.beacons.minor == %d OR ANY region.beacons.minor = nil)",
rangedBeacon.major.intValue, rangedBeacon.minor.intValue];
UPD:最简单的也行不通:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY region.beacons.minor = nil"];
UPD 2:可能是因为 ANY+nil 的问题 根据这个答案Core Data, NSPredicate, ANY key.path == nil ANY 只选择 NOTNULL 值。
【问题讨论】:
-
为什么要复制?我不明白
uint16_t的东西,因为它不是一个对象,它不应该是零。为什么不是NSNumber?你不是在使用CLBeacon对象吗? -
我重复了这个问题,因为现在标记为重复的 brevios 并链接到错误的答案。是的,我正在使用 CLBeacon。
-
好吧,根据链接的答案,你应该在你的谓词中写
nil而不是NIL,修改你的代码没有反映。现在,我在之前的评论中提出的其他问题呢? -
Larme,对不起,我匆忙复制了上一个问题。我将 NIL 更正为 nil,但这并没有帮助。
-
重复问题的答案有什么问题?您在此处发布的代码与您上一个问题的重复答案中的显示方式不同。
标签: ios objective-c nspredicate