2015-06-01 2 views
1

Я установил свой проект для использования RestKit и CoreData: добавлена ​​инфраструктура CoreData в «Link binary with libraries» и «pod 'RestKit», «~> 0.24.0» в мой подфайл.Не удается настроить RestKit с CoreData

Все выглядело хорошо, пока я пытался использовать метод RKObjectManager в

managedObjectRequestOperationWithRequest:managedObjectContext:success:failure: 

Xcode дает мне следующую ошибку:

Нет видимых @interface для 'RKObjectManager' не декларирует селектор «managedObjectRequestOperationWithRequest: managedObjectContext: успех : отказ: '

Перед этим методом в RKObjectManager.h и RK существует директива #ifdef RKCoreDataIncluded preprocessor. CoreDataIncluded определяется следующим образом:

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

Я не могу понять, что еще мне нужно сделать, чтобы включить CoreData в RestKit?

+0

Отправьте код, вызывающий этот метод, вместе с настройкой вашего moc и RKObjectManager. – RyanR

ответ

3

Как выясняется, для того, чтобы использовать RestKit с CoreData вы должны создать прекомпилированный файл заголовка для вашего проекта и добавьте следующую строку:

#import <CoreData/CoreData.h> 

Этот вопрос обсуждается здесь: https://github.com/RestKit/RestKit/issues/1564

+0

Заказ в файле PCH имеет значение сейчас, тогда как он не был раньше. Я немного поцарапал себе голову после обновления RestKit, прежде чем понял. Импорт для CoreData должен идти до импорта для RestKit. – muldercnc

1

В время компиляции, RestKit ожидает, что Core Data уже импортирован. Поэтому, просто импортировать Core Data, прежде RestKit:

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

Там нет необходимости создавать прекомпилированный заголовок, который будет создавать зависимость между библиотеками и каждым классом в вашей цели.

Смежные вопросы