2012-03-02 24 views
0

CoreDataを使用していて、[MyManagedObjectClass findAll]を使用してオブジェクトを取得できます。NSFetchRequestが 'findAll'と比較して異なる結果

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

fetchRequest.entity = [NSEntityDescription entityForName:@"Contacts" inManagedObjectContext:self.context]; 
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES]]; 

NSError *error; 
NSArray *array = [self.context executeFetchRequest:fetchRequest error:&error]; 

私は述語を持っていませんが、リクエストではなく、すべてのオブジェクトを返しますが、0のオブジェクトはありません。今、私はこのようになりますNSFetchRequestを使用していくつかのデータを取得したいです。 AFAIKすべてのオブジェクトをロードしたい場合、述語を持つ必要はありませんか?

答えて

0

ここでの問題は、コアデータと同じコンテキストを使用していないことでした。 CoreDataオブジェクトからコンテキストを取得した場合、それは機能します。

1

私は述語を持っていませんが、要求はオブジェクトの代わりに オブジェクトすべてを返しません。 AFAIKすべてのオブジェクトをロードする場合は、述語を持つ必要はありません。 、そうですか?

  • self.contextはゼロではないでしょうか?
  • リクエスト後にNSErrorが空ですか?
+0

self.contextは初期化されていて、エラーはゼロではありません。 – Besi

+0

実際にデータベース内に「連絡先」というエンティティがありますか? – user1226119

+0

self.contextはnilではありませんが、間違ったコンテキストでした。私自身の答えを見てください – Besi