黑马程序员-NSNumber知识点详解

我们之前说过, NSArray 中不能保存基本数据类型.如果想要保存的话,那么就需要用到 NSNumber,接下来,我们就NSNumber的知识点进行解读

一.NSNUmber的作用

NSNumb

er 是 NSValue 的子类,在 C 中,它的主要作用是把基本数据类型包装成对象,然后保存到 NSArray ,NSDictionary 等集合中

 

二.创建方法

(1)包装 char 类型

+ (NSNumber *) numberWithChar: (char) value 和 + (NSNumber *) numberWithChar: (char) value; 如下图:

(2)包装 int类型

+ (NSNumber *) numberWithInt: (int) value; 和 initWithInt 如下图:

 

(3)包装 float 类型
+ (NSNumber *) numberWithFloat: (float) value;  和 initWithFloat  如下图:

(4)包装 bool 类型
+ (NSNumber *) numberWithBool: (BOOL) value; 和 initWithBool  如下图:

(5)包装其它的类型我们开篇说过NSNumber可以包装基础类型,在我们编译器中运行的时候,可以看到智能提示部分有很多的可创建方法.由此可见,我们学习一门知识,记住所有的创建方式是不可行的,记住NSNumber,利用编译器的智能提示,找到我们需要包装基础类型的方法,智能提示如下:

 

三.添加到集合中

直接用我们之前文章中提到的方法来创建数组,并且打印出来,一切正常,如下图:

 

四.从集合中读取元素

基本数据类型存入集合之后,直接取出读取到的并不是原来的类型,我们需要用下列方法来将元素装换为之前的样子,方法如下:
- (char) charValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *) stringValue;

这一点,看起来有点像把 NSString 类型存入集合中,读取的时候将 NSString 类型转换.

 

五. NSNumber为什么可以存储到集合中呢?

首先我们需要知道,集合保存的是对象,但是int这些是基本数据类型,是类型不是类,创建之后也就不能称之为严格的类对象.我们这里讲到的 NSNumber 是类,创建出的类对象自然可以保存到集合中

 

posted @ 2015-12-03 21:12  coderQin  阅读(255)  评论(0)    收藏  举报