如果使用 CoreData,我需要缓存吗
Posted
技术标签:
【中文标题】如果使用 CoreData,我需要缓存吗【英文标题】:Do I need cache if using CoreData 【发布时间】:2017-01-17 10:30:19 【问题描述】:首先我是 ios/swift 的新手...
我的应用需要离线模式。
我将 Alamofire 用于所有网络获取 json、转换为对象并保存到数据库(核心数据)中。想知道在没有互联网连接或从 CoreData 获取的情况下,我是否需要在两者之间添加额外的缓存(例如:Haneke 或 DataCache)?
数据库请求是否足够快/方便?
【问题讨论】:
我可以使用 CoreData。够了 Cache Webservice data into core data的可能重复 【参考方案1】:CoreData 非常快(如果使用正确)。我认为不需要额外的缓存层。
这只是您已经存储在数据库中的数据的重复。
顺便说一句,这一切都取决于您的项目用例。如果我的应用必须在没有互联网连接的情况下运行,我不会依赖临时缓存的数据。
让您了解核心数据性能,以便您选择最适合您的:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/Performance.html
【讨论】:
感谢您的回答:对我来说仍然不清楚您所说的非常快是什么意思,这是否意味着它与缓存或缓存一样快/或更快? 这意味着您可能不会感觉到差异。通过添加额外的层,您将增加开销。你可以测量性能,你会看到一些核心数据更快的用例,以及一些缓存更快的用例。问题是您需要了解什么对您的项目更好。一般来说,我更喜欢使用核心数据,原因在我之前的回答中解释过:没有重复,应用程序运行所需的数据的可靠持久性,易于使用且不需要额外的层。以上是关于如果使用 CoreData,我需要缓存吗的主要内容,如果未能解决你的问题,请参考以下文章
如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?
Core Data 可以在 iOS 上延迟获取 BLOB 属性吗?
如果我已经发布的 v1 没有版本化的 Core Data 模型,我可以使用“自动轻量级迁移”吗?