私は、マネージドオブジェクトコンテキストで作業しているほぼすべてのファイルで、自分のプロジェクトのNSFetchedResultsControllerコードを常時パッティング/リピートする必要があります。NSFetchedResultsControllerを管理対象オブジェクトクラスに入れることはできますか?
繰り返しコードの量を減らしたいと思います。このような繰り返しのCRUDのようなコードをモデルクラスの中に入れたいと思います。
私の代わりに、すべてのカスタムNSFetchを関連するエンティティ(つまり:Company.m、Employee.m)のマネージドオブジェクトクラスに入れたいとします。
アップルのCore Booksサンプルコードでも、このコードをManaged Object Classに入れていないのですが、可能かどうか疑問に思っていますか?
私はCompany.mクラスにコードを貼り付けようとしましたが、managedObjectContextについて不平を言っていますし、また、パラメータとしてもfetchedResultsControllerが宣言されていないと文句を言うのですか?
理想的には、エンティティ管理対象クラス内にフェッチリクエスト/結果コントローラの種類をたくさん置いておきたいと思います。
しかし私が自分よりも先に進む前に、NSFetchedResultsControllerのすべてをEntity Managed Objectクラスに入れることは可能でしょうか?
これをカバーするサンプルチュートリアルやプロジェクトやソースコードがある場合はそれも素晴らしいでしょう。
ありがとうございました。
(コードサンプルが続きます)。
/**
Returns the fetched results controller. Creates and configures the controller if necessary.
*/
- (NSFetchedResultsController *)fetchedResultsController
{
if (fetchedResultsController != nil) {
return fetchedResultsController;
}
// Create and configure a fetch request with the Book entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Company" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Create the sort descriptors array.
NSSortDescriptor *authorDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:authorDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Create and initialize the fetch results controller.
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"author" cacheName:@"Root"];
self.fetchedResultsController = aFetchedResultsController;
fetchedResultsController.delegate = self;
// Memory management.
[aFetchedResultsController release];
[fetchRequest release];
[authorDescriptor release];
[sortDescriptors release];
return fetchedResultsController;
}
よろしくお願いいたします。 – zardon
私はActive RecordやMagical Recordを使用する機会がありませんでした。私はMagicalPandaのコードを100%動かすことはありませんでしたが、私は確かに正しい方向へのステップと考えています。 AppleがiOSの中にフレームワークのような独自のnoSQLを持っていれば、これも素晴らしいだろう。 – zardon