我正在使用RestKit和Core Data。直到现在我将RestKit初始化为:
[...]
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURLString:@"http://URL"];
objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"database.sql"];
[...]
没有此xcode自动生成的Core Data属性:
@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“链接”到核心数据?如何将persistentStoreCoordinator“链接”到RestKit和RKObjectManager?
答案 0 :(得分:0)
您已经将RestKit和Core Data与该代码相关联。现在,如果我理解了这个问题,您只需要能够访问托管对象上下文。尝试创建“Core Data Manager”对象,该对象包含具有这些属性的上下文,模型和存储协调器所需的所有代码。然后,任何需要该代码的类都可以从核心数据管理器继承。
答案 1 :(得分:0)
在http://mobile.tutsplus.com/tutorials/iphone/advanced-restkit-development_iphone-sdk/
找到答案RKManagedObjectStore - 对象存储包装内部Core Data类的初始化和配置,包括NSManagedObjectModel,NSPersistentStoreCoordinator和NSManagedObjectContext。
RestKit处理Core Data安静自治的“链接”。没有任何联系可以做。
通过NSManagedObject调用fetchAllSortedBy或NSManagedObject + ActiveRecord.h中的类似方法,可以获得NSFetchingResultsController。 e.g。
fetchedResultsController = [Customer fetchAllSortedBy:@"surname" ascending:YES withPredicate:nil groupBy:@"surname"];