2

我如何为使用核心数据模型创建的 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 来创建对象实例和映射。

谢谢

4

2 回答 2

5

使用 Restkit,您可以在要创建的类上使用静态方法对象。在你的例子中

[ClassA object]

会给你一个实例化的对象。

只要确保导入正确的标题:

#import <RestKit/CoreData.h>

代替

#import <CoreData/CoreData.h>

于 2012-08-30T13:35:25.187 回答
0

不,您不想通过 alloc/init 实例化 NSManagedObject。你应该使用NSEntityDescription's insertNewObjectForEntityForName:inManagedObjectContext:。就像是:

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

为了拥有 a NSManagedObjectContext,您还需要 aNSPersistentStoreCoordinator和 anNSManagedObjectModel等。是的,这很复杂。 这本书真的帮助我了解了 Core Data。我全心全意地推荐它。

请参阅核心数据编程指南中有关创建和删除托管对象的部分。实际上,当您在那里时,我建议您阅读整个核心数据编程指南。Core Data 令人惊叹且功能强大,但也很复杂;你真的很想知道你在做什么。

更新:您使用 RestKit 的事实可能会改变我上面所说的。可能是 RestKit 有自己的 API 来处理 Core Data 的东西,我不确定。也许检查文档。

于 2012-08-26T05:23:01.130 回答