如何为我使用核心数据模型创建的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来创建对象实例和映射。
由于
答案 0 :(得分:5)
使用Restkit,您可以在要创建的类上使用静态方法对象。在你的例子中
[ClassA object]
会返回一个实例化对象。
请务必导入正确的标题:
#import <RestKit/CoreData.h>
而不是
#import <CoreData/CoreData.h>
答案 1 :(得分:0)
不,您不希望通过alloc / init实例化NSManagedObject。您应该使用NSEntityDescription
的{{1}}。类似的东西:
insertNewObjectForEntityForName:inManagedObjectContext:
要获得ClassA *obj = [NSEntityDescription
insertNewObjectForEntityForName:@"ClassA"
inManagedObjectContext:context]; // ClassA is NSManagedObject Class
,您还需要NSManagedObjectContext
和NSPersistentStoreCoordinator
等等。是的,这很复杂。 This book真的帮助我了解核心数据;我全心全意地推荐它。
请参阅Core Data Programming Guide section on creating and deleting managed objects。实际上,当你在那里时,我建议你阅读整个Core Data Programming Guide。核心数据惊人而强大,但它很复杂;你真的想知道你在做什么。
更新:您使用RestKit的事实可能会改变我上面所说的内容。它可能是RestKit拥有自己的用于执行核心数据的API,我不确定。也许查看文档。