ios - 使用 Core Data 存储大量对象

标签 ios objective-c core-data

我对 Core Data 比较陌生,有一个一般性的问题。

在我当前的项目中,用户可以访问我所在州每个县的各种传感器报告的数据。每个传感器都显示在一个 TableView 中,该 View 从 Web 服务调用中收集数据。调用网络服务可能需要一些时间,因为此应用程序可能在无线连接速度较慢的农村地区使用。此外,用户通常只需要该州 55 个县中的一个或两个县的数据。每个县可能有 15 到 500 件由 Web 服务返回的元素。由于传感器名称和位置很少更改,我希望该应用程序缓存来自 Web 服务调用的数据,以便更快地收集传感器位置列表(并为发生更改的情况提供刷新按钮)。该应用程序已经使用 Core Data 来存储带有书签的传感器位置,因此它已经在应用程序中进行了设置。

我的问题是是使用 Core Data 来缓存传感器列表,还是使用 SqlLite 数据存储。由于 js 已经有一个数据模型,我可以简单地向模型添加另一个实体。但是,我担心这是否会引入不必要的开销,或者根本不会引入开销。

作为 Core Data 的新手,似乎所有真正发生的事情都是对象被序列化并且它们的属性作为字段添加到由 Core Data 管理的 SqlLite 数据库中。如果是这种情况,使用现有的核心数据存储似乎真的不会有任何开销。

谁能帮我解决这个问题?谢谢!

最佳答案

it appears that all that is really happening is that objects are serialized and their properties added as fields in a SqlLite DB managed by Core Data

你说得对。 Core Data 做的更多,但这是基本功能(如果你告诉它使用 SQLite 存储,这是大多数人所做的)。

至于要在Core Data中存储多少条记录,那应该不是问题。我现在正在开发一个 Core Data 应用程序,它还在 Core Data 中存储了超过 20,000 条记录,而且我仍然可以获得非常快的获取时间,例如用于在键入时自动完成。

核心数据肯定会增加一些开销,但如果您只有很少的实体和关系,并且不会在多个上下文中创建/修改对象,则可以忽略不计。

关于ios - 使用 Core Data 存储大量对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19934795/

相关文章:

ios - 如何从 Xcassets 获取 iOS 版本特定的 Assets

iphone - 其他 View 中的 ManagedObjectContext

ios - 如何在每个具有唯一数据源的 UICollectionView 单元格中放置不同的 UITableView?

objective-c - 使用贝塞尔路径

ios - 在未来的特定时间在 iOS 中运行后台任务

iphone - 如何在 iOS 中为应用程序图标制作动画?

iphone - CoreData内存管理问题

ios - 核心数据集逆向关系

ios - 从 UINavigationController 堆栈转出到 UITabBarController

ios - 空指针的取消引用