我有两个类,Mammals
和 Fish
,它们都继承自通用父类(super class) Animals
。我想使用 Core Data 存储我所有的 Mammals
和 Fish
,所以我将它们都设为 NSManagedObject 的子类。因此,当我想要获取我所有的 Mammals
和 Fish
时,我只需执行几个获取请求。
我的问题是如何处理 Animals
父类(super class)。
- 它的属性和方法显然被两个子类使用,所以它也应该是一个 NSManagedObject 吗?
- 如果是这样,
Mammals
和Fish
甚至需要一个明确的 NSManagedObject 子类,因为它们已经是Animals
的子类了吗? - 这种方法有缺陷吗?
抱歉,如果这是一个 super 基本的问题,特别是如果答案只是“是;否”。答案之一here警告不要在数据模型中使用继承,因此我很担心。
最佳答案
您自己决定您的继承模型是否会在未来将您束缚住。但是直接回答你的问题,你的继承树看起来像......
NSManagedObject -> Animal -> Mammals
-> Fish
所以
@interface 动物:NSManagedObject
和
@interface 鱼:动物
请注意 Core-Data
如果您需要在未来升级您的模型并仍然保留现有数据,则不能很好地进行复杂的重新排列。并非不可能,只是并不总是那么容易。
关于ios - 如何让两个 NSManagedObject 类具有相同的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949489/