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