对于Objective-C 的数组 NSArray 只能存对象,不能存取基本数据类型,如 整型int 、浮点型float、 双精度浮点型double、 字符型char,但Objective-C为了能够将基本数据类型存到数组,有一个类型叫做NSNumber 的类型,叫做数字对象。(有些字词用的不是很准确,待找到合适的词定会修改过来)
用法如下:
// 将 整型int 转换成 NSNumber 类型
NSNumber * number_int = [[NSNumber alloc] initWithInt:65];
// 将 字符型char 转换成 NSNumber 类型
NSNumber * number_char = [[NSNumber alloc] initWithChar:‘A‘];
//将 浮点型float 转换成 NSNumber 类型
NSNumber * number_float = [[NSNumber alloc] initWithFloat:2.0f];
//将 双精度浮点型double 转换成 NSNumber 类型
NSNumber * number_double = [[NSNumber alloc] initWithDouble:5.6];
//初学者想要通过键盘输入来赋值,其实原理是一样的,例如:将浮点类型c转换成 NSNumber 类型
char c ;
scanf("%c",&c);
NSNumber * number_free = [[NSNumber alloc] initWithChar:c];
//将 NSNumber类型 转换成 整型int
int iNumber = [number_int intValue];
//将 NSNumber类型 转换成 字符型char
char cNumber = [number_char charValue];
//将 NSNumber类型 转换成 浮点型float
float fNumber = [number_float floatValue];
//将 NSNumber类型 转换成 双精度浮点类型
double dNumber = [number_double doubleValue];
/*
[number isEqualToNumber:(NSNumber *)] 函数是比较两个 NSNumber类型的方法
BOOL 类型的返回值 只有两种 一是YES(也就是1) 二是NO(也就是0)
‘A‘ 的ASCALL 码是 65
number_int对象的值就是65
number_char对象的值是‘A’,相比较是相等的,因为‘A’就是65
*/
BOOL isSame = [number_int isEqualToNumber:number_char];