NSInteger,NSNumber,Int区别
2017-08-14 本文已影响20人
晓叶
NSInteger和NSNumber
首先NSInteger和NSNumber两个没区别.
NSInteger只是一个基本的数据类型.
NSNumber是OC的对象,继承自NSValue,NSValue又继承自NSObject
NSUInteger 和NSInteger
NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
NSInteger 和Int
C语言Windows中:
16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节
64位系统:long是8字节,int是4字节
objective-c里,苹果的官方文档中总是推荐用NSInteger
NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。当你不知道你的操作系统是什么类型的时候,你通常会想要使用NSInteger,所以或许你想要你的int类型范围尽可能的大,用NSInteger,32位系统NSInteger是一个int,即32位,但当时64位系统时,NSInteger便是64位的。——所以就是一般推荐用NSInteger的