核心数据最大存储 iPhone

Posted

技术标签:

【中文标题】核心数据最大存储 iPhone【英文标题】:Core Data max storage iPhone 【发布时间】:2010-10-21 02:03:37 【问题描述】:

    单个 iPhone 应用程序可以消耗多少持久存储空间有限制吗?

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

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

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

谢谢!

马特

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于核心数据最大存储 iPhone的主要内容,如果未能解决你的问题,请参考以下文章

非关系型数据库Redis核心内容

非关系型数据库Redis核心内容

阿里春招阿里云-盘古分布式存储系统团队暑期实习招聘内推

ZooKeeper 核心功能和工作机制

ZooKeeper 核心功能和工作机制

ZooKeeper 核心功能和工作机制