NSNumber与NSInteger的区别
来源:互联网 发布:c语言中时间差怎么计算 编辑:程序博客网 时间:2024/05/22 09:42
Objective-C 支持的类型有两种:基本类型 和 类。
基本类型,如同C 语言中的 int 类型一样,拿来就可以直接用。 而类在使用时,必须先创建一个对象,再为对象分配空间,接着做初始化和赋值。 类的初始化,需用类自身的方法 (类方法)。 代码中所创建的对象,不用后,还得记着释放。
做了这么多铺垫, 具体到 NSNumber 和 NSInteger ,又怎样呢?
NSNumber 是类, 而 NSInteger 只不过是个 基本类型。
既然 NSInteger是基本类型,那么,使用起来就非常简单。 声明一个变量, NSInteger myInt; 直接赋值就可以了。 比如: myInt=8;
谈到“类”,总是给人以抽象的感觉。像NSNumber 这个类型,从字面上看,它属于char、int、long、double 中的哪一种呢? 其实,NSNumber 可以隶属其中的任意一种类型。 这就是“类”的强大 —— 抽象,而且内嵌多种方法(method)。
既然NSNumber 是类,就应该遵循“类”的规则。 通过类方法来创建、初始化一个类的对象。
NSNumber 所拥有的类方法,如下:
+ (NSNumber*)numberWithChar: (char)value;
+ (NSNumber*)numberWithInt: (int)value;
+ (NSNumber*)numberWithFloat: (float)value;
+ (NSNumber*)numberWithBool: (BOOL) value;
NSNumber *myNumber,*floatnumber,*intNumber,*doublenumber,*charNumber;
myNumber = [NSNumber numberWithLong:0xabcdef];
floatnumber = [NSNumber numberWithFloat:12.33];
intNumber = [NSNumber numberWithInt:100];
doublenumber = [NSNumber numberWithDouble:12345e+15];
charNumber = [NSNumber numberWithChar:'X'];
将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:
- (char)charValue;
- (int)intValue;
- (float)floatValue;
- (BOOL)boolValue;
- (NSString*)stringValue;
myInt = [intNumber intValue]; //获取对象的整型值
//[floatnumber floatValue];
//[doublenumber doubleValue];
//[charNumber charValue];
有了以上概念,我们来考一个面试题。 以下code 编译是否有误?
本文转载学习用
http://leopard168.blog.163.com/blog/static/168471844201381793246514/
- NSNumber与NSInteger的区别
- NSNumber与NSInteger的区别
- NSNumber与NSInteger的区别
- NSNumber与NSInteger的区别
- NSNumber与NSInteger的区别
- NSNumber与NSInteger的区别
- int, NSInteger, NSUInteger, NSNumber的区别
- int、 NSInteger、 NSUInteger、NSNumber之间的区别
- NSNumber与NSInteger转换遇到的问题
- iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别!Nsnumber
- int,NSInteger,NSUInteger,NSNumber区别
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- 【iOS】_int、NSInteger、NSUInteger、NSNumber的区别和联系
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- 基础知识之_int、NSInteger、NSUInteger、NSNumber的区别和联系
- NSInteger 与 int的区别
- int、NSInteger、NSUInteger、NSNumber的关系
- Android Volley完全解析(四),带你从源码的角度理解Volley
- js保留2位小数的实例参考
- 第七届蓝桥杯第6题:方格填数
- utilities(matlab)—— normalize
- 选择法排序
- NSNumber与NSInteger的区别
- 16进制
- VBA——word中书签与VS的完美搭配
- 【BZOJ2152】聪聪可可【点分治】
- 16进制
- mysql调优
- 武sir第三讲(3)函数
- 冒泡排序法
- 选择排序法