我的NSNumber * year
属性为NSManagedObject
,数据模型中的类型为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];
}
在这两种情况下,app崩溃。
答案 0 :(得分:12)
如果您提供有关模型的更多详细信息,我们可以为您提供帮助。
但我认为问题归因于cars
。如果cars
为多个,则需要为此
[NSPredicate predicateWithFormat:@"ANY cars.year == %@", yearNo];
答案 1 :(得分:8)
正如@flexaddicted已经说过,你没有提供足够的信息,例如获取请求的实体。
如果要获取具有给定Car
的{{1}}个对象,谓词就是
year