Создание экземпляра для класса NSManagedObject с помощью Restkit

как я могу создать экземпляр класса NSmanagedObject, который я создаю с использованием базовой модели данных. У меня есть другой класс, который является подклассом NSObject. Я хочу создать объект для класса NSManageObject. Как мне это сделать. Как обычно, мы создаем экземпляр класса NSobject, например

ClassB.m//ClassB - это класс NSObject

ClassA *obj = [[ClassA alloc]init]; //ClassA is NSmanagedObject Class

или есть ли способ сделать это???

Я не использую этот код (Apple Docs) для создания экземпляра

NSManagedObject *newEmployee = [[NSManagedObject alloc]

            initWithEntity:employeeEntity

            insertIntoManagedObjectContext:context];

Мне хотелось бы знать, есть ли способ создать объект, похожий на приведенный выше код, используя restkit

Примечание: я использую Restkit для создания экземпляра объекта и отображения.

Спасибо

Ответ 1

С помощью Restkit вы можете использовать объект статического метода в классе, который хотите создать. В вашем примере

[ClassA object]

возвращает вам экземпляр объекта.

Просто не забудьте импортировать правильные заголовки:

#import <RestKit/CoreData.h>

вместо

#import <CoreData/CoreData.h>

Ответ 2

Нет, вы не хотите создавать экземпляр NSManagedObject через alloc/init. Вы должны использовать NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:. Что-то вроде:

ClassA *obj = [NSEntityDescription
    insertNewObjectForEntityForName:@"ClassA"
    inManagedObjectContext:context]; // ClassA is NSManagedObject Class

Чтобы иметь NSManagedObjectContext, вам также нужны NSPersistentStoreCoordinator и NSManagedObjectModel и т.д. Да, это сложно. Эта книга действительно помогла мне разобраться с Core Data; Я рекомендую это всем сердцем.

Смотрите раздел Руководство по программированию основных данных по созданию и удалению управляемых объектов. Фактически, пока вы там, я бы рекомендовал прочитать полное руководство Core Data Programming Guide. Core Data - потрясающий и мощный, но он сложный; вы действительно хотите знать, что вы делаете.

Обновить. Тот факт, что вы используете RestKit, может изменить сказанное выше. Может быть, у RestKit есть собственный API для работы с Core Data, я не уверен. Возможно, проверьте документы.