带有 ANY 和“=nil”的 NSPredicate 不起作用
NSPredicate with ANY and "=nil" doesn't work
这个条件有效
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY region.beacons.major = %d",rangedBeacon.major.intValue];
但这不是
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY region.beacons.minor = nil"];
beacons 是内部区域对象的列表。 Major 和 Minor 的类型为 NSNumber
你可以试试这个:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY region.beacons.minor = $minor"];
predicate = [predicate predicateWithSubstitutionVariables:
[NSDictionary dictionaryWithObject:[NSNull null] forKey: @"minor"]];
我找到了解决方案
因为 ANY 和 "=nil" 不能处于相同的条件(这里有解释 Core Data, NSPredicate, ANY key.path == nil)?这个问题的解决方案看起来像:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"SUBQUERY(region.beacons, $x, $x.minor == nil)"];
这个条件有效
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY region.beacons.major = %d",rangedBeacon.major.intValue];
但这不是
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY region.beacons.minor = nil"];
beacons 是内部区域对象的列表。 Major 和 Minor 的类型为 NSNumber
你可以试试这个:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY region.beacons.minor = $minor"];
predicate = [predicate predicateWithSubstitutionVariables:
[NSDictionary dictionaryWithObject:[NSNull null] forKey: @"minor"]];
我找到了解决方案
因为 ANY 和 "=nil" 不能处于相同的条件(这里有解释 Core Data, NSPredicate, ANY key.path == nil)?这个问题的解决方案看起来像:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"SUBQUERY(region.beacons, $x, $x.minor == nil)"];