1

我正在使用带有核心数据的 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?如何将persistentStoreCoordinator“链接”到RestKit 和RKObjectManager?

4

2 回答 2

0

您已经将 RestKit 和 Core Data 与该代码相关联。现在,如果我理解了这个问题,您只需要能够访问托管对象上下文。尝试创建一个“核心数据管理器”对象,其中包含具有这些属性的上下文、模型和存储协调器所需的所有代码。然后,任何需要该代码的类都可以从核心数据管理器继承。

于 2012-11-12T22:01:11.183 回答
0

在http://mobile.tutsplus.com/tutorials/iphone/advanced-restkit-development_iphone-sdk/找到答案

RKManagedObjectStore – 对象存储包装了内部核心数据类的初始化和配置,包括 NSManagedObjectModel、NSPersistentStoreCoordinator 和 NSManagedObjectContext。

RestKit 处理“链接”到 Core Data 安静自主。没有链接要做。

可以通过调用 fetchAllSortedBy 的 NSManagedObject 或 NSManagedObject+ActiveRecord.heg 中的类似方法来获取 NSFetchingResultsController

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