我正在考虑将大量数字存储为 Int16。考虑核心数据,因为其余模型都是在核心数据中实现的。
所以我做了一个简单的应用程序。具有 1 个实体和 1 个 Int16
类型属性的核心数据。在SQLite存储类型中插入100万条条目,文件大小为16.2MB。实际上,如果我更改为 Int64,我会得到相同的文件大小。如果编写简单的二进制 C 数组,应该在 2MB 左右。
所以问题是,如果所有内容都会被转换为 NSNumber 的话,为什么核心数据还要烦恼这么多不同类型的数字格式呢?有没有办法让Core data将数据存储为真正的Int16
?或者 C 语言中的 short
?
谢谢。
最佳答案
仅仅因为 Core Data 支持所有这些数字格式并不意味着底层存储引擎必须以不同的方式存储它们。如果您尝试使用二进制存储,您可能会得到不同的文件大小。
为了存储这么多整数,我会将它们全部放入 NSData
对象中,并将其存储在 Core Data 中。
关于objective-c - 核心数据文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3675810/