ios - 每秒保存到核心数据性能

标签 ios swift core-data

情况如下:

我正在开发的应用程序想要更新特定可听/可视项目(例如歌曲或视频)的 NSManagedObject 子类的持续时间属性。此信息很重要,因此需要尽可能准确

解决方案 1 是在项目播放完毕后更新它,但是如果用户从内存中终止应用程序,无论它们是在前台还是后台,那么这会引入另一个如何处理的问题。

解决方案 2(似乎绝对是最简单的解决方案)是通过计时器每秒更新这个单一的持续时间属性,就像核心数据逻辑发生在 updateDuration 方法中一样:

updateTimer = Timer.every(1.0, {
     self.updateDuration(for: self.itemNeedingUpdate)
})
RunLoop.current.add(updateTimer!, forMode: RunLoopMode.commonModes)

我的问题是“这是一件坏事吗?”所有保存操作都在后台线程上处理,如果该项目暂停或停止,则计时器也会停止。因此,仅当实际正在收听或观看该项目时才会触发保存操作。我已经在我的项目中对此进行了测试,并且这种方法似乎没有任何性能问题。然而,它在我的脑海中升起了危险信号。我很想听听任何人对这个特定解决方案的见解。

最佳答案

我不确定我是否完全理解您的应用程序在做什么。但是,每秒保存一次以维护不断变化的用户数据?我会毫不犹豫地这样做。

关于ios - 每秒保存到核心数据性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39714497/

相关文章:

ios - RestKit 0.2 : flattening the hierarchy in JSON

ios - 从操作内部访问队列

ios - 如何从数组对象中获取字符串

ios - 出于回调 URL 的目的,在 Expo 中运行的 React Native 项目的 info.plist 在哪里?

ios - 删除sqlite的WAL文件安全吗?

objective-c - 自定义 NSURLProtocol 以显示/隐藏 NetworkActivityIndi​​cator

ios - 无限旋转 UIView 并暂停/停止动画,保持状态,并从当前状态继续旋转

ios - 重复本地通知 iOS 10

xcode - 编辑核心数据对象时发生 fatal error

iphone - 核心数据中缺少对象