0

这类似于我之前问过的一个问题,但是现在我已经走得更远了,我仍然有一个关于 NSManagedObject 的“正确”子类化的问题,因为昨晚有人告诉我,放很多非-持久的属性和 ivars 在一个里面。目前我的 NSManagedObject 中有大量代码,而 Apple 的文档并没有真正解决它的“正确性”。仅供参考:代码有效,但我问的是前面是否存在陷阱,或者是否有明显的改进以另一种方式进行。

我的“对象”是不断增长的传入数据数组、跟踪该数据分析进度的属性/变量以及处理后的数据(输出)。所有这些都存储在内存中,因为它会非常快速地增长,并且无法连续重新生成/重新分析。实际持久化的 NSManagedObject 属性只是原始数据(定期保存,因为 Core Data 不支持 NSMutableData)、一些基本属性和 2 个与其他 NSManagedObjects 的关系(1 个是用户,另一个是一组快照数据)。任何时候都只记录一个对象,尽管可以打开几十个对象进行查看(这可能随时涉及进一步处理)。

插入实体的对象(管理核心数据的数据管理器)不可能在其中包含所有处理逻辑/变量,因为每个对象都需要至少少数用作中介和跟踪值的数组/属性用于分析。而且我个人认为,为每个正在使用的对象创建两个对象(NSManagedObject 是存储,另一个对象是处理/临时存储)听起来很愚蠢。

基本上,我能找到的所有使用 NSManagedObjects 的示例都有超级简单的对象,例如坐标、地址簿条目、图片:基本上是静态的东西。在那种情况下,我可以看到在对象之外创建/修改它们的所有逻辑。但是,我的情况并不是那么简单,我还没有想出一个不涉及重复的替代方案。

任何建议,将不胜感激。

4

1 回答 1

1

您可能会使用“包装器”,也就是说一个引用了您的托管对象实例之一的类,该包装器将包含您的算法和非持久化算法。

于 2013-03-20T21:20:43.563 回答