我有 NSManagedObject
的 NSNumber * year
属性,它在数据模型中的类型是 Integer 16
。
我尝试与 NSPredicate
核实今年的情况,但找不到合适的。
我尝试过的:
NSPredicate *p = nil;
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
NSNumber *yearNo = [nf numberFromString:term];
if (yearNo) {
p = [NSPredicate predicateWithFormat:@"(cars.year == %i)", yearNo.intValue];
}
我也试过:
NSPredicate *p = nil;
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
NSNumber *yearNo = [nf numberFromString:term];
if (yearNo) {
p = [NSPredicate predicateWithFormat:@"(cars.year == %@)", yearNo];
}
在这两种情况下,应用都会崩溃。
最佳答案
如果您提供模型的更多详细信息,我们可以为您提供帮助。
但我认为问题出在汽车
上。如果 cars
是 to-many 你需要一个修饰符
[NSPredicate predicateWithFormat:@"ANY cars.year == %@", yearNo];
关于objective-c - NSManagedObject 的 NSNumber 属性的 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243057/