我有来自XCode 7 coredata的查询。假设我正在创建NSManagedObject的子类(让名为" NoteEntity"),现在我有两个由Xcode生成的类,名为" NoteEntity + CoreDataProperties.swift"和" NoteEntity.swift"。我知道第一个是目标c中的类别扩展。
我的问题是为什么Xcode会生成两个类?我们以什么方式使用这两个类来提高工作效率?
答案 0 :(得分:2)
如果稍后更改模型,则会生成两个类,但只会重新生成一个类(NoteEntity + CoreDataProperties.swift)。
由于这个新功能,您将能够在NoteEntity.swift类上添加一些方法甚至属性。它们不会被新一代的模型抹去!
在此功能之前,我们必须创建自己的类别。
它比考虑这个之前更好: 你有两节课;消息和注释(Message的子类)。 在此之前,如果您在Message和Comment上有一个类别,并且需要在这两个类别中使用方法,则必须包含这两个类。 但是现在,你只需要包含Comment.swift,其中包括类别(因为它有点类别)Message.swift:)
答案 1 :(得分:1)
我认为这与生产力无关。
当您更新实体(添加/删除属性或关系)时,将重新生成文件NoteEntity + CoreDataProperties.swift(因此,将删除任何代码)。这就是为什么你应该在文件NoteEntity.swift中执行该类的原因。这样,每次更新NSManagedObject子块时都不会删除它。