NSNumber 与NSValue

Posted free-thinker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSNumber 与NSValue相关的知识,希望对你有一定的参考价值。

    NSNumber与NSValue关系与作用

1.由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们就需要将这些数据类型或结构体包装成OC对象,以便集合能访问到。常用的用来包装这些类型的有NSNumber NSValue

2.NSNumber只能包装基本数据类型,比如int, float,char,BOOL等

3.NSValue可以包装任意一个对象,包括系统自定义的数据结构,结构体等等

4.NSNumber是NSValue的一个子类

    NSNumber

//包装
int age = 20;
NSNumber *num = [NSNumber numberWithInt:age];//将基本数据类型int对象age 包装成NSNumber对象
@(age);//直接包装

//拆封
[num intValue];

    NSValue

将结构体包装成OC对象

CGPoint p = CGPointMake(1,2);
NSValue *val = [NSValue valueWithPoint:p];//将结构体p包装成NSValue对象

//
[value pointValue]

 

以上是关于NSNumber 与NSValue的主要内容,如果未能解决你的问题,请参考以下文章

Object - C 值对象 NSNumber和NSValue

OC系列高级-NSValue

关于NSNumber & NSValue的方法知识简单了解

Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)

OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

iOS 基础数据类型及其包装类型 & 对象类型