1

私は CoreData を使用するのが初めてで、テーブルに対してクエリを実行する方法を理解しようとしています。フェッチ リクエストを使用してテーブルからすべてのレコードを取得できますが、サブセットを探しています。これを行う簡単な方法はありますか?

ありがとう、ハウィー

4

3 に答える 3

5

Predicatesを調べましたか?

また、 Core Data に関する Marcus Zarra の本を購入してください。

于 2010-01-04T17:06:29.560 に答える
3

にを追加しNSPredicateて、NSFetchRequest返されるレコードをフィルタリングできます。返されるオブジェクトに何を入力するかを制御することもできます(プロパティのみを入力、リレーションシップを含める、何も入力しない、カウントを返すだけなど)が、Peterが指摘したように、CoreDataはオブジェクト階層とモデルAPIであり、たまたま保存されます。データベースに。そのPOVから見ると、作業がはるかに簡単です。

于 2010-01-04T21:53:26.610 に答える
1

次のようなことをしなければなりません:

// 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];
于 2010-01-05T01:12:22.670 に答える