【问题标题】:Swift - core data capacitySwift——核心数据容量
【发布时间】:2017-07-20 22:16:26
【问题描述】:

我必须设计一款能够随着时间的推移维持越来越多数据的应用。

例如,假设我有这样的数据模型。

class obj{
  let data1: String
  let data2: String
  init(data1: String, data2: String){
    self.data1 = data1
    self.data2 = data2
  }
}

而且每天我都必须保存新的 obj。 在这种情况下,使用核心数据来保存数据是明智的吗? 还是像 sql 这样准备数据库并在那里保存数据更好? 我担心的是应用程序在使用一段时间后无法处理这么多数据,因为最终数据的总大小变得太大......

对不起,我对核心数据和数据库没有深入的了解。 感谢所有提前在这里与我分享一些知识的人。 谢谢

【问题讨论】:

    标签: ios swift core-data


    【解决方案1】:

    在大多数情况下,人们将 Core Data 与 SQLite 后备存储一起使用。这不像使用 SQLite,但它是相关的,因为您在内存使用方面获得了类似的好处。

    除非您将 很多 模型对象加载到内存中,否则您不会使用过多的内存。对于像您这样的示例,这将是非常多的对象。但更典型的是,您使用 Core Data 仅加载总数的一个子集。例如,data1 的每个对象都具有特定的字符串值,或者最近的 20 个对象。 “太大”通常不是问题。如果您正在将大量对象加载到内存中,那么无论您是否使用 Core Data,都会遇到问题。

    【讨论】:

    • 我明白了。您是对的,该应用程序不会每次都使用/加载所有数据。就像你说的,很可能是10~20。但是,让我确认一下我是否正确地告诉了您……例如,iOS 日历应用程序允许用户根据需要保存任意数量的事件。虽然可能不会同时查看事件,但所有数据实际上都保存在手机中,这意味着随着我们不断使用它会消耗更多的内存。但你的意思是我不必担心这种内存管理,除非它们同时加载?
    • 注意不要混淆内存和存储空间。任何应用程序都会使用足够的存储空间来保存其所有数据。但除非它一次加载所有数据,否则它不会使用那么多内存。
    • 哦,好吧。是的,我确实很困惑。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2015-04-04
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多