ios - Core Data 和 Swift 中的计算属性与持久存储

标签 ios database swift core-data

我觉得这是一个愚蠢的问题,但我是新手,找不到明确的答案。

我有一个事件实体和一个 session 实体。每个 Activity 可以有很多 Session。每个 session 都有一个持续时间属性。

现在我想要一个事件的平均 session 持续时间。我应该向我的 Activity 实体添加 averageSessionDuration 属性并更新它并在用户添加或删除 session 时保留它,还是我可以只向我的 Activity 类添加一个计算属性并让它在调用时计算平均 session 持续时间?

我猜想使用计算属性平均 session 持续时间的计算次数会比必要的多一些,但我不知道这是否重要,它最终会有所不同吗?

我不知道幕后发生了什么,是否获取每个 session 持续时间并取平均值比仅获取在必要时更新并持久化的 averageSessionDuration 属性要昂贵得多?在这种情况下,最佳做法是什么?还有什么我想念的吗?

提前致谢

丹尼尔

最佳答案

它很可能不会对性能产生任何影响,但如果您使用计算属性而不是尝试确保它在保存其他值时始终保持最新,那么代码会更清晰(我认为)。

如果您害怕性能问题,您可以始终缓存每个 session 的计算值,并在您更改应用程序中的值时使缓存无效。这可能是两个世界中最好的。

这是一个品味问题,我相信双方都有支持的论据。

关于ios - Core Data 和 Swift 中的计算属性与持久存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273252/

相关文章:

ios - 使用 Lightning HDMI 适配器时,移除 ios 外部显示器上的欠扫描/帧

.net - MS Access (MDB) 并发

swift - 将多个参数添加到 UITableView 中的目标 #selector

ios - 多个子项目构建为一个 pod 下的模块

ios - Objective-C - 即使应用了 sqlite3_close(),sqlite3_open 内存泄漏

ios - Flutter 不断为 iOS 导入旧版本的 Plugin

从 Tomcat 到 SQL Server 2014 的 Java 7 SSL 连接

php - 数据库中数据的安全性

ios - Swift:为用户搜索 Firebase 数据库

swift - 核心数据错误 : Failed to load model, 'An NSManagedObject of class ' MyApp.Item' 必须具有有效的 NSEntityDescription