《Core Data应用开发实践指南》一2.5 Integer 16、Integer 32与Integer 64

本节书摘来自华章出版社《Core Data应用开发实践指南》一书中的第2章,第2.5节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.5 Integer 16、Integer 32与Integer 64

对于属性来说,这三种数据类型是比较相似的,它们都表示没有小数点的整数,唯一区别就在于能够表示多大或多小的数。由于Core Data使用“带符号的整数”(signed integer),所以取值范围从某个负数开始,而不是从0开始:

  1. Integer 16的取值范围是–32 768至32 767
  2. Integer 32的取值范围是–2 147 483 648至2 147 483 647
  3. Integer 64的取值范围是–9 223 372 036 854 775 808至9 223 372 036 854 775 807
    数字的值越大,所占的内存就越多。在这三种整数类型之间选择时,你需要思考当前属性的最小取值和最大取值。如果不能确定的话,那么通常可以选用Integer 32。要是程序出错了,那就说明需要选用一种取值范围更广的数据类型,此时可以把属性的类型提升到Integer 64。我们需要升级托管对象模型才能完成这种修改操作,第3章将会讨论此话题。

Integer使用以2为底的数制,更通俗的说法是二进制。计算机执行整数运算的速度要比执行浮点数运算更快,因为它无需考虑运算所产生的余数。比方说,如果计算10除以3的话,那么只要算出结果是3就好了,余下的那个1可以丢弃。这种运算有个专门的术语,叫做低精度(low precision)运算。如果要用整数来表示货币,那么笔者强烈建议你用“1”表示“1分钱”。这样的话,在执行财务计算的时候就不会出现舍入误差了。
标准整数的最小取值与最大取值可以从stdint.h文件里看到:在Xcode中打开任意类文件,输入INT32_MAX,然后用鼠标右击这几个字符,选择Jump to Definition,你会看到stdint.h文件里定义了各种整数的最小取值与最大取值。你也会注意到:无符号整数的最大取值要比带符号整数的大,这是因为它们的值不会低于0。Core Data只使用带符号的整数,这样做的优点是既能表示负值,又能表示正值,缺点则是最大取值要比无符号整数的小。
根据实体来创建NSManagedObject子类时,如果实体中某个属性的类型为Integer 16、Integer 32或Integer 64,那么在创建好的子类里,相关特性的类型就会是NSNumber。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值