0

将 4 种类型的属性存储到 Core Data 中的 32 位 int 中是否有点矫枉过正?或者我应该为它们中的每一个简单地创建一个单独的属性?(将使用逻辑运算符来设置/获取)。

我计划向现有对象添加一个新实体,该对象将包含 200-400 个具有大约 14 个属性的项目(包括用于排序目的的“索引”属性)。任何时候都只能操作或查看一套。

我需要维护撤消支持(参考How do I raise performance of Core Data object insert on iPhone?

如果我将多个属性存储到一个字段中,我可以将其减少到大约 8 个属性。除非存在可搜索性问题,否则我会节省大量空间吗?

此外,将一组 400 个对象存储在以每周 1-3 个左右的速度增长的项目列表中是否不合理?

我听说有些人在核心数据中存储了数千个项目,所以我可能是偏执狂。我想从长远来看,我需要提供一个导出存档选项,也许是 iCloud。

4

1 回答 1

1

所以你说你有 400 个具有 14 个属性的对象,你可以将它们存储为单独的整数,或者组合成更少的 32 位(4 字节)值?

400 x 14 x 4 字节 = 22,400 字节

这根本不是很大的空间。如果您将其减半,您将节省 11K,这可能与您为编码和解码这些值而生成的额外代码的大小相比相形见绌。

但不要相信我的话:编写一个将值填充到 Core Data 中的小型测试程序,然后在分析器下运行它以查看会发生什么。

您还可以阅读 SQLite 以及它如何存储值,因为这是 Core Data 在后台使用的内容。

我的直觉说你是个偏执狂,你的小玩意代码不会有太大帮助。更糟糕的是,当您忘记正在使用符号扩展进行移位时,这将是引入非常微妙的错误的好方法。(而且我喜欢写一些琐碎的代码!)

于 2012-06-03T22:53:05.047 回答