質問

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プロトコルのドキュメントを参照してください)コールを受信するために、デリゲートオブジェクトを提供します。 それはまた、あなたがテーブルビューにデータを表示したい場合に便利ですセクションの管理を提供します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top