2013-01-09 8 views
6

プロパティはNSManagedObjectです。データモデルの型はInteger 16です。NSManagedObjectのNSNumberプロパティのNSPredicate

今年は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]; 
} 

を。

+1

表示されます。 –

答えて

12

お使いのモデルの詳細をご提供いただければ、お手伝いできます。

しかし、問題はcarsに起因すると思います。 carsがに、多くの場合、すでに@flexaddictedあなたは、例えば、十分な情報を提供していない、言ったように、あなたはこの

[NSPredicate predicateWithFormat:@"ANY cars.year == %@", yearNo]; 
+1

私は、与えられた 'year'を使って' Car'オブジェクトを検索したいと思っていました。その場合、述語は 'year ==%@"、yearNo'にすぎません。 –

+0

@MartinRでも可能です。あなたが望むならあなたの答えを加えなさい;) –

+0

はい、それは多対多の関係でした。ありがとう – Shmidt

7

の改質剤を必要としますどのエンティティに対してフェッチ要求が行われたかを示す。

あなたが与えられたyearCarオブジェクトを取得したい場合は、述語は、私たちにフェッチ要求またはクラッシュログをちょうど

[NSPredicate predicateWithFormat:@"year == %@", yearNo]