NSNumber 与NSValue

作者: CharlesAn | 来源:发表于2015-04-16 17:24 被阅读1864次

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

    NSNumber与NSValue关系与作用 NSNumber NSValue

  • NSValue的介绍和使用 - OC

    什么是NSValue? NSNumber是NSValue的子类, 但NSNumber只能包装数字类型 NSValu...

  • Foundation - NSNumber值对象

    NSNumber是NSValue的子类,但 NSNumber只能包装数字类型,NSValue可以包装任意值。也可以...

  • Objective-C基础学习之NSValue

    1.NSValue基本概念 NSNumber是NSValue的子类, 但NSNumber只能包装数字类型 NSVa...

  • Foundaton框架-->NSValue

    一、NSValue的基本概念 NSNumber是NSValue的子类,但NSNumber只能包装数字类型 NSVa...

  • NSValue (NSNumber)

    NSValue.h 中,一般用的不是很多, 注:注意多使用 NSNumber,而且用 @(int); 方法装箱! ...

  • NSNumber与NSInteger

    NSInteger、CGFloat是基本数据类型,而NSValue、NSNumber是包装类,NSValue是NS...

  • NSValue

    NSValue是NSNumber的父类结构体 指针 复合类型 使用NSValue来封装 int a[10]也可以...

  • iOS中的NSNumber与NSValue

    NSNumber(只能包装数字类型) NSValue(可以包装结构体)

  • iOS-NSNumber

    NSNumber 是 NSValue的子类使用NSNumber对象来创建和初始化不同类型的数字对象NSArray、...

网友评论

    本文标题:NSNumber 与NSValue

    本文链接:https://www.haomeiwen.com/subject/hkgsfttx.html