在核心数据中选择整数类型

Ste*_*ter 4 cocoa integer core-data

当我在核心数据中创建模型时,我总是有点困惑,我应该选择哪种整数类型-16,32,64.我几乎总是需要一些简单的基本数字:家庭中的人数,就我目前的情况而言.可能会是1-20之间的数字.或者,我在另一个实例中有一个递增的案例ID号...无法想象比几百人更进一步.

这就是交易......很明显,真正的计算机科学家对数字的看法不同,考虑到将要处理数字的体系结构,处理和存储数据所需的空间,向后兼容性,未来校对等因素,当我想到数字时,我基本上会想到一个值有多大.因此,当我必须在三种类型的整数之间进行选择时,当我到达我的过程的那一点时,我基本上对自己说,"好吧,这将是一个小数字,让我们只使用Int 16选项......" ,或者"拍摄,我最终可能会得到一个非常大的数字,所以让我们使用Int 64选择." 基本上,我选择这些数据类型时使用的是我在订购薯条时使用的相同逻辑...如果我真的很饿我会去大,如果我'

我正在学习,知道我没有用正确的术语来考虑这一点,但我真的不知道为什么,而且我不知道选择最佳选择的适当方法.我应该考虑哪些因素...在Int 16,Int 32和Int 64之间选择的最重要标准是什么?

Tom*_*ton 6

没关系.

假设您使用的是SQLite持久性存储,则这三种整数类型都表示为SQLite INTEGER字段(Core Data的"布尔"类型相同).而在SQLite中,字段类型纯粹是建议,所以即使这并不意味着什么.因此:它在存储空间方面几乎没有区别.SQLite将根据整数值的大小来优化自身,而核心数据级别的较大int类型将不起作用.

对于内存使用,它可能会产生很小的影响.如果使用64位int而不是16位,则需要的位数多于所需的位数.但除非你有非常大的数据集,否则你不太可能有理由关心.

我通常的规则是使用Integer 64作为任何整数值.