NSManagedObject CoreData中的父子层次结构

时间:2014-11-06 05:06:56

标签: ios objective-c entity-framework core-data

在xcdatamodeld文件中,我创建了一个Person个实体,其中包含firstNamelastNameemail个字段。然后我创建了一个User实体,其中包含一个额外的字段。我将Person设置为User的父实体。

然后我使用'Editor'菜单中的'Create NSManagedObject Subclass ...'选项,为这些实体生成了类。

现在,当我User* user = [[User alloc] init]时,由于某种原因,我无法访问超级user.firstName的{​​{1}}或其他属性。它说,“在User *类型的对象上找不到属性firstName”

当我选中时,生成的Person类是User的子类而不是NSManagedObject。我认为这是一个问题,并将Person更改为User的子类。代码编译得很好,但在运行时因此错误而崩溃 -

Person

我真的不知道我在这里做错了什么。我认为Xcode应该正确生成类,我应该能够开箱即用。

1 个答案:

答案 0 :(得分:2)

我怀疑初始化失败(列表中的第一个错误)是导致第二个错误(无法识别的选择器)的原因。

您需要使用initWithEntity:insertIntoManagedObjectContext:而非init。或者使用NSEntityDescription' s insertNewObjectForEntityForName:inManagedObjectContext:类方法。