0

コンテキストにエンティティ A を挿入する際に問題があります。すべてのエンティティを挿入した直後に、AI はコンテキストでフェッチ リクエストを実行します。

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 でそれらを確認できます...

同じコンテキストで、次のように年齢 = 5 のすべてのエンティティ A をフェッチしようとしました: (属性に「年齢」を割り当て、値に NSString @"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];

問題は、NSLog が 5 歳のエンティティ A を示しているにもかかわらず、この最後のフェッチ要求が常に null を返すことです! 何もない。

助言がありますか?それらすべてをフェッチして 5 歳のエンティティを表示し、5 歳のみのフィルタリングが同じコンテキストで直後に機能しないのはなぜですか?

ありがとう

4

1 に答える 1

3

NSString @ "5"ではなく、5に初期化されたNSNumberのインスタンスに年齢を設定してみてください。

于 2012-04-14T20:48:36.333 に答える