私は CoreData を使用するのが初めてで、テーブルに対してクエリを実行する方法を理解しようとしています。フェッチ リクエストを使用してテーブルからすべてのレコードを取得できますが、サブセットを探しています。これを行う簡単な方法はありますか?
ありがとう、ハウィー
Predicatesを調べましたか?
また、 Core Data に関する Marcus Zarra の本を購入してください。
にを追加しNSPredicate
て、NSFetchRequest
返されるレコードをフィルタリングできます。返されるオブジェクトに何を入力するかを制御することもできます(プロパティのみを入力、リレーションシップを含める、何も入力しない、カウントを返すだけなど)が、Peterが指摘したように、CoreDataはオブジェクト階層とモデルAPIであり、たまたま保存されます。データベースに。そのPOVから見ると、作業がはるかに簡単です。
次のようなことをしなければなりません:
// Init your fetchRequest
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"entityName" inManagedObjectContext:yourManagedObjectContext];
// create the relation between request and the created entity
[fetchRequest setEntity:entityDescription];
// Set your predicate for this request
// For more info take a look at NSPredicate Class Reference
// http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.html
[fetchRequest setPredicate:somePredicate];
// Pushing the results into a mutable array
NSMutableArray *mutableFetchResults = [[yourManagedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
[fetchRequest release];