我很难理解数据类型的大小差异。
我有一个名为displayOrder
的属性,类型为Integer 16
。我使用此属性来维护tableViewCells的显示顺序,由tableView中的用户添加。我用普通数字设置了值," 1,2,3和#34;并且它工作正常。
但是还有很多其他选项,例如Integer 32
,Integer 64
,Decimal
,Float
和Double
。我做了自己的研究,发现Float可以有一个小数点,而Double是Float大小的两倍(不确定Decimal和Float之间的区别)。
我的问题是,如果这些差异只是大小,这是否意味着我不得不担心displayOrder会升级,例如" 1000",它会超过{{ 1}}(它是否超过了大小?),因此我应该使用Integer 16
代替?如果我将其设置为Integer 32
,并且如果displayOrder只是" 1",我是否必须担心性能下降?
我已经看过文档NSAttributeType,但不确定数字代表什么。
由于
答案 0 :(得分:2)
我认为@choppin意味着速度明智,它不会带来很多不同。它非常大小,int16是int32的一半大小,当你只需要int16s时有大量的int32s会有更大的内存占用。这里的数字表示变量在内存中占用的位数。
如果你只有一对夫妇,那么不要担心,但如果你有一个大的数据集,那么它就成了一个问题。
此外,如果你要存储的数字可能是一个非常大的数字,那么你需要更大的选项,例如int32可以存储4,294,967,296或者如果Int是默认签名的那么一半。如果超过signed int的最大大小,那么数字将换行,对于signed int,将为负数或0。
由于内存是移动设备上的一个问题,那么您选择哪种选项值得考虑,尽管它比几年前做的更少。
答案 1 :(得分:1)
它不应该对你使用的性能做出很大的贡献,但我会坚持使用整数32.这样你就可以获得32的值(对于显示顺序来说应该足够了)