1

Core Data で RestKit を使用しています。今まで、次のようにRestKitを初期化しました:

[...]
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURLString:@"http://URL"];
objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"database.sql"];
[...]

この xcode 自動生成コア データ プロパティなし:

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

データのフェッチは、NSManagedObject で objectsWithFetchRequest: を呼び出すことで機能しました。NSFetchingResultsController を使用したいので、少なくともそのような managedObjectContext が必要です。しかし、この managedObjectContext はどこから取得するのでしょうか? 私の最初のアイデアは、AppDelegate.m で自動生成された managedObjectContext からのものでしたが、この 3 つのプロパティ managedObjectContext、managedObjectModel、persistentStoreCoordinator はすべて互いに依存しています。

RestKit を Core Data に正しく「リンク」するにはどうすればよいですか? persistStoreCoordinator を RestKit と RKObjectManager に「リンク」するにはどうすればよいですか?

4

2 に答える 2

0

http://mobile.tutsplus.com/tutorials/iphone/advanced-restkit-development_iphone-sdk/で答えを見つけました

RKManagedObjectStore –オブジェクトストアは、NSManagedObjectModel、NSPersistentStoreCoordinator、NSManagedObjectContextなどの内部コアデータクラスの初期化と構成をラップします。

RestKitは、CoreDataへの「リンク」を静かに自律的に処理します。行うべきリンクはありません。

NSFetchingResultsControllerを取得するには、NSManagedObjectを呼び出してfetchAllSortedByを呼び出すか、NSManagedObject+ActiveRecord.hegの同様のメソッドを使用します。

fetchedResultsController = [Customer fetchAllSortedBy:@"surname" ascending:YES withPredicate:nil groupBy:@"surname"];
于 2012-11-14T08:32:07.573 に答える
0

すでに RestKit と Core Data をそのコードにリンクしています。質問が理解できれば、管理対象オブジェクトのコンテキストにアクセスできるようになるだけで済みます。これらのプロパティを持つコンテキスト、モデル、ストア コーディネーターに必要なすべてのコードを含む "Core Data Manager" オブジェクトを作成してみてください。その後、そのコードを必要とするクラスはすべて、コア データ マネージャーから継承できます。

于 2012-11-12T22:01:11.183 に答える