无法使用 CoreData 配置 RestKit

Cannot configure RestKit with CoreData

我确实设置了我的项目以使用 RestKit 和 CoreData:在 'Link binary with libraries' 和 "pod 'RestKit', '~> 0.24.0'" 中添加了 CoreData 框架到我的 Podfile。

一切看起来都很好,直到我尝试使用 RKObjectManager 的方法

managedObjectRequestOperationWithRequest:managedObjectContext:success:failure:

Xcode 给我以下错误:

No visible @interface for 'RKObjectManager' 声明选择器 'managedObjectRequestOperationWithRequest:managedObjectContext:success:failure:'

在RKObjectManager.h这个方法之前有一个#ifdef RKCoreDataIncluded预处理器指令,RKCoreDataIncluded是这样定义的:

#ifdef _COREDATADEFINES_H
#if __has_include("RKCoreData.h")
#define RKCoreDataIncluded
#import "RKManagedObjectStore.h"
#import "RKManagedObjectRequestOperation.h"
#endif
#endif

我不知道我还需要做什么才能在 RestKit 中启用 CoreData?

事实证明,为了将 RestKit 与 CoreData 一起使用,您必须为您的项目创建预编译头文件并添加以下行:

#import <CoreData/CoreData.h>

这里讨论这个问题:https://github.com/RestKit/RestKit/issues/1564

在编译时,RestKit 期望 Core Data 已经导入。因此,只需在 RestKit 之前导入 Core Data:

#import <CoreData/CoreData.h>
#import <RestKit/RestKit.h>

无需创建预编译的 header,这会在库与目标中的每个 class 之间创建依赖关系。