コンテキスト内にエンティティAを挿入する際に問題があります。NSFetchRequestはコンテキスト内に存在するエンティティをフェッチします
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
上記のこのコードは、それらのすべてを取得することができ、私は...のNSLogでそれらを見ることができます
右:私は、エンティティのすべてを挿入した直後AIは、コンテキストにフェッチ要求を実行します後の同じコンテキストに私はこのように、年齢= 5を持っているすべてのエンティティを取得しよう: は
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"%K == %@",attr,value];
[fetchRequest setPredicate:filter];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
THE(私はattirbuteに「年齢」と「5」の値に@ NSStringのを割り当てます)問題はNSLogが年齢5のエンティティAを示していても、この最後のフェッチリクエストrいつもeturnsはヌルです!何もない。
提案がありますか?なぜそれらのすべてをフェッチすると5歳のエンティティが表示され、5歳のフィルタリングは同じコンテキストではすぐに機能しませんか?
おかげ
モデルの年齢はどのようなタイプですか? –
NSNumber(整数64)、また、私は、述語を@ "age == 5"にハードコードすると、それが機能することを知りました。今、混乱しています。 – zumzum
%@文字列引数を使用すると、文字列比較の引用符が挿入されます。データが文字列でない場合は、比較しません...これが私が型を尋ねた理由です... –