7

我有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];
}

在这两种情况下,应用程序都会崩溃。

4

2 回答 2

12

如果您为您的模型提供更多详细信息,我们可以为您提供帮助。

但我认为问题是由于cars. If carsis to-many 你需要一个修饰符

[NSPredicate predicateWithFormat:@"ANY cars.year == %@", yearNo];
于 2013-01-09T17:51:58.920 回答
8

正如@flexaddicted 已经说过的那样,您没有提供足够的信息,例如为哪个实体发出了获取请求。

如果你想获取Car一个给定year的对象,谓词就是

[NSPredicate predicateWithFormat:@"year == %@", yearNo]
于 2013-01-09T18:01:06.513 回答