ios - 如何让两个 NSManagedObject 类具有相同的父类(super class)

标签 ios objective-c core-data

我有两个类,MammalsFish,它们都继承自通用父类(super class) Animals。我想使用 Core Data 存储我所有的 MammalsFish,所以我将它们都设为 NSManagedObject 的子类。因此,当我想要获取我所有的 MammalsFish 时,我只需执行几个获取请求。

我的问题是如何处理 Animals 父类(super class)。

  • 它的属性和方法显然被两个子类使用,所以它也应该是一个 NSManagedObject 吗?
  • 如果是这样,MammalsFish 甚至需要一个明确的 NSManagedObject 子类,因为它们已经是 Animals 的子类了吗?
  • 这种方法有缺陷吗?

抱歉,如果这是一个 super 基本的问题,特别是如果答案只是“是;否”。答案之一here警告不要在数据模型中使用继承,因此我很担心。

最佳答案

您自己决定您的继承模型是否会在未来将您束缚住。但是直接回答你的问题,你的继承树看起来像......

 NSManagedObject -> Animal -> Mammals 
                           -> Fish

所以

@interface 动物:NSManagedObject

@interface 鱼:动物

请注意 Core-Data 如果您需要在未来升级您的模型并仍然保留现有数据,则不能很好地进行复杂的重新排列。并非不可能,只是并不总是那么容易。

关于ios - 如何让两个 NSManagedObject 类具有相同的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949489/

相关文章:

ios - 基于 json 的搜索栏过滤器

ios - CVPixelBuffer 导致设备上产生垃圾图像,而在模拟器上按预期工作

ios - 使用旧的 SKTextureAtlas 或 SpriteAtlas

Objective-C 插件架构安全性(Mac,不是 iPhone)

objective-c - Cocoa Where to store a secret file 存放Demo安装日期

ios - iCloud 在初始同步期间正在做什么?

iphone - scrollViewWillBeginDragging 中的滚动量

ios - 为数据库设置加密 key (Sybase 无线平台)

ios - 是否可以通过编程方式确定 iOS 目标

iphone - Core Data(SQLite 支持)自定义字符串排序