我有一个Core Data模型,其中包含一个包含Day实体的Entity TrainingDiary。我已经在32天内设置了几个测试培训日记,另一个完整导入了一个有10,103天的现场培训日记。天和昨天和明天都有相互关系。
我在Day上有一个派生属性,它取一个昨天的值和今天的值来计算今天的值。这很有效但是当滚动表格时它相对较慢。由于经过一天之后,这个值变化非常罕见,我认为最好存储该值并计算一次。
因此,我有一个计算可以在选定的一组天完成。当第一次进口日记时,它将在所有日子进行,但在此之后,绝大多数情况下只会在最近一天进行计算。
当我在测试数据上检查其性能时,我得到以下结果:
未保存核心数据模型。我想知道是否有大量的通知发生,所以我删除了我在NSNotification.Name.NSManagedObjectContextObjectsDidChange上设置的观察者,我删除了我的keyPathsForValuesAffectingValue(forKey :)实现的实现,但它没有任何区别。
我可以在更短的时间内从JSON导入整个日记 - 包括创建所有对象并设置每个值。
我不知道为什么会这样。是否有任何人对可能采取的措施或采取措施进行调查?
[我正在使用XCode9和SWIFT4]