FetchResultControllerとManagedObjectContextを使用してGETオブジェクト間の差
質問
FetchResultControllerまたはManagedObjectContextとコアデータからGET要素の違いは何??
1)FetchResultController
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Item" inManagedObjectContext: managedObjectContext]];
NSSortDescriptor *sortDescriptorNameAscending = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptorNameAscending,nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptorNameAscending release];
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Lists"];
2)ManagedObjectContext
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Item" inManagedObjectContext:managedObjectContext]];
NSError *error = nil;
NSArray *items = [ managedObjectContext executeFetchRequest:request error:&error];
解決
セクションで作業するとき、
ちょうどNSFetchedResultsController
とは対照的に、NSFetchRequest
を使用して後ろのポイントは、あなたのデータと便利なメソッドを監視している。
NSFetchRequest
を扱う場合には、あなたはセクションを自分で決定する必要があり、あなたはあなたのデータを再フェッチする必要があるときに何かが変化します。
NSFetchedResultsController
を扱うとき、それはあなたのセクションを決定する、キャッシュ(瞬時の近くにそのデータのための第2の要求を行う)の結果、そしてあなたのNSTableViewのための便利なメソッドを提供します。最後に、ときにデータの変更、NSFetchedResultsController
は、その代表者を通じて通知します。
これらの両方の内部データが同じになるだろう。それは違いで、そのデータの状態を管理されます。
他のヒント
NSFetchedResultsController
オブジェクトは、ときに、クエリの変更のオブジェクトを教えてくれます。ただ、(NSFetchedResultsControllerDelegate
プロトコルのドキュメントを参照してください)コールを受信するために、デリゲートオブジェクトを提供します。
それはまた、あなたがテーブルビューにデータを表示したい場合に便利ですセクションの管理を提供します。
所属していません StackOverflow