这与我之前提出的问题类似,但是现在我已经走了很远,仍然有一个关于NSManagedObject的“正确”子类化的问题,因为昨晚我被告知,放置大量非持久性和内在价值。目前,我的NSManagedObject内部有大量的代码,而Apple的文档并没有真正解决该问题的“正确性”。仅供参考:该代码有效,但我想问的是前面是否存在陷阱,或者是否可以通过其他方式明显改进。

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

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

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

任何建议,将不胜感激。

最佳答案

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

10-08 09:05
查看更多