【问题标题】:Core Data max storage iPhone核心数据最大存储 iPhone
【发布时间】:2010-10-21 02:03:37
【问题描述】:
  1. 单个 iPhone 应用程序可以消耗多少持久存储空间有限制吗?

  2. 如果 iPhone 达到每个应用程序的限制,save 会将 error 参数设置为什么?如果达到硬件限制怎么办?

  3. 是否可以限制为某些实体存储的对象数量?如果是这样,这样做的好方法是什么?

acani,我正在开发的一个 iPhone 应用程序,从服务器下载最近的 20 个用户并将他们保存到 Core Data。使用该应用程序一段时间后,users SQLite 表可能会变得相当大。我怎么能限制它?我应该把它限制在什么范围内?一旦这个表达到容量,我怎样才能让新下载的用户替换最旧的下载用户?

谢谢!

马特

【问题讨论】:

    标签: iphone objective-c core-data persistence


    【解决方案1】:

    我不知道限制问题的答案,但我认为您会希望在此之前限制最大数据量。有一些 iPhone 应用程序(games0 占用大量存储空间(我认为 Myst 是 1.5G 线)。但是如果你允许你的数据库增长到那种大小,你可能会开始影响用户拥有的存储空间用于他们的其他应用程序。

    我倾向于建议您的应用程序需要实现某种数据库管理。你将不得不写这个。由用户自动触发或手动触发。例如,您可能想要设置一个设置选项,用户可以在其中指定要保留多少“旧”用户。如果根据位置自动添加用户,用户最有可能希望使用哪种算法来剔除列表?

    【讨论】:

      【解决方案2】:

      App Store 中的 apps 有 2GB 的限制,但就用户数据而言,您应该能够基本填满磁盘。发生这种情况时,您的保存将开始失败,我相信 PSC 会出现“NSFileWriteOutOfSpaceError”。

      就限制实体空间而言,Core Data 对此没有支持 - 您必须以编程方式处理它。您可以扩展验证系统以检查某些条件(可用空间、实体数量),如果这些条件不符合您的条件,则插入或更新失败。

      如果要删除旧用户,只需对结果进行排序并删除第一个/最后一个。

      【讨论】:

        猜你喜欢
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-26
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多