在xcdatamodeld文件中,我创建了一个Person
个实体,其中包含firstName
,lastName
和email
个字段。然后我创建了一个User
实体,其中包含一个额外的字段。我将Person
设置为User
的父实体。
然后我使用'Editor'菜单中的'Create NSManagedObject Subclass ...'选项,为这些实体生成了类。
现在,当我User* user = [[User alloc] init]
时,由于某种原因,我无法访问超级user.firstName
的{{1}}或其他属性。它说,“在User *类型的对象上找不到属性firstName”
当我选中时,生成的Person
类是User
的子类而不是NSManagedObject
。我认为这是一个问题,并将Person
更改为User
的子类。代码编译得很好,但在运行时因此错误而崩溃 -
Person
我真的不知道我在这里做错了什么。我认为Xcode应该正确生成类,我应该能够开箱即用。
答案 0 :(得分:2)
我怀疑初始化失败(列表中的第一个错误)是导致第二个错误(无法识别的选择器)的原因。
您需要使用initWithEntity:insertIntoManagedObjectContext:
而非init
。或者使用NSEntityDescription
' s
insertNewObjectForEntityForName:inManagedObjectContext:
类方法。