как мога да създам инстанция за NSmanagedObjectКлас, който съм създал, използвайки модела за данни. Имам друг клас, който е подкласът на NSObject. Искам да създам обект за клас NSManageObject. как мога да направя това. Прилича ли на нормалния начин, по който създаваме екземпляр за клас NSobject като
ClassB.m // ClassB е NSObject клас
ClassA *obj = [[ClassA alloc]init]; //ClassA is NSmanagedObject Class
или има някакъв начин да направите това ???
не използвам този код (Apple Документи) за създаване на инстанция
NSManagedObject *newEmployee = [[NSManagedObject alloc]
initWithEntity:employeeEntity
insertIntoManagedObjectContext:context];
Бих искал да знам, има ли някакъв начин да се създаде обект, подобен на горния код, използвайки restkit
Забележка: Аз използвам Restkit за създаване на обект на обект и картографиране.
Благодаря
Отговори:
5 за отговор № 1С помощта на Restkit можете да използвате обекта на статичния метод в класа, който искате да създадете. В примера ви
[ClassA object]
ще ви върне инстанцииран обект.
Трябва само да импортирате правилните заглавки:
#import <RestKit/CoreData.h>
вместо
#import <CoreData/CoreData.h>
0 за отговор № 2
Не, не искате да инстанцирате NSManagedObject чрез alloc / init. Трябва да използвате NSEntityDescription
"с insertNewObjectForEntityForName:inManagedObjectContext:
, Нещо като:
ClassA *obj = [NSEntityDescription
insertNewObjectForEntityForName:@"ClassA"
inManagedObjectContext:context]; // ClassA is NSManagedObject Class
За да имаш a NSManagedObjectContext
, също се нуждаете от NSPersistentStoreCoordinator
, и NSManagedObjectModel
и т.н. Да, сложно е. Тази книга наистина ми помогна да се справя с Core Data; Препоръчвам го изцяло.
Вижте Ръководство за програмиране на основни данни за създаване и изтриване на управлявани обекти, Всъщност, докато сте там, аз препоръчвам да прочетете цялото Ръководство за програмиране на основни данни, Основните данни са невероятни и мощни, но са сложни; наистина искате да знаете какво правите.
АктуализацияФактът, че сте използвали RestKit може да промени това, което казах по-горе.