核心数据属性类型差异

时间:2015-02-26 01:01:24

标签: ios objective-c swift core-data

我很难理解数据类型的大小差异。

我有一个名为displayOrder的属性,类型为Integer 16。我使用此属性来维护tableViewCells的显示顺序,由tableView中的用户添加。我用普通数字设置了值," 1,2,3和#34;并且它工作正常。

但是还有很多其他选项,例如Integer 32Integer 64DecimalFloatDouble。我做了自己的研究,发现Float可以有一个小数点,而Double是Float大小的两倍(不确定Decimal和Float之间的区别)。

我的问题是,如果这些差异只是大小,这是否意味着我不得不担心displayOrder会升级,例如" 1000",它会超过{{ 1}}(它是否超过了大小?),因此我应该使用Integer 16代替?如果我将其设置为Integer 32,并且如果displayOrder只是" 1",我是否必须担心性能下降?

我已经看过文档NSAttributeType,但不确定数字代表什么。

由于

2 个答案:

答案 0 :(得分:2)

我认为@choppin意味着速度明智,它不会带来很多不同。它非常大小,int16是int32的一半大小,当你只需要int16s时有大量的int32s会有更大的内存占用。这里的数字表示变量在内存中占用的位数。

如果你只有一对夫妇,那么不要担心,但如果你有一个大的数据集,那么它就成了一个问题。

此外,如果你要存储的数字可能是一个非常大的数字,那么你需要更大的选项,例如int32可以存储4,294,967,296或者如果Int是默认签名的那么一半。如果超过signed int的最大大小,那么数字将换行,对于signed int,将为负数或0。

由于内存是移动设备上的一个问题,那么您选择哪种选项值得考虑,尽管它比几年前做的更少。

答案 1 :(得分:1)

它不应该对你使用的性能做出很大的贡献,但我会坚持使用整数32.这样你就可以获得32的值(对于显示顺序来说应该足够了)