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]

原文地址:https://www.cnblogs.com/Free-Thinker/p/9844269.html

时间: 2024-11-05 13:03:57

NSNumber 与NSValue的相关文章

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

NSNumber和NSValue

在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现基本数据类型与对象类型的互相转换,而NSValue,则是实现结构体对象与对象类型的互相转换. NSNumber因为是实现基本数据类型与对象类型的互相转换,所以,必须是要有数据类型,而int ,char,BOOL,Float,Long,Integer等等等-都可以进行相应的转换 Foundation框

NSNumber,NSValue,NSData

参考博客 http://blog.csdn.net/yhawaii/article/details/8222973 http://blog.csdn.net/sakulafly/article/details/13292457 http://blog.csdn.net/at9009/article/details/7863720 我们在编码中,很多时候需要将C里面原生的数据封装成对象,这样可以用NSDictionary或者NSArray来存取访问.尤其是一些做适配的情况下,这种封装是不可避免的.

NSNumber和NSValue对基础C数据类型的对象化封装(转载)

NSNumber和NSValue对基础C数据类型的对象化封装 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/8614433 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢! 由于Objective-C中常用的数据容器,如NSArray,NSDictionary等,只能处理Objective-C中的对象级别的数据类型,对于C中的很多数据类型,如int,flo

NSNumber、NSValue、NSDate、NSObject

注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [NSNumber numberWithInt:10]; // 将int类型的10 包装成一个NSNumber对象. NSLog(@"number=%@", number);//NSNumber类型对象可以当作字符串直接输出. NSMutableArray *array = [NSMutab

黑马程序员——Foundation(NSNumber,NSDate,NSValue)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1. NSNumber a. NSNumber设计目的 OC已经有int,float,double...类型为什么还需要设计NSNumber呢?原因是很多集合类型如NSArray,NSDictionary等只能容纳OC对象对于一些类似于int的基本数据类型我们需要把它转化为OC对象才能被集合容纳,这就是NSNumber设计的目的. b. NSNumber的使用 1 2 3 4 5 6 7 8

Object - C 值对象 NSNumber和NSValue

在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现基本数据类型与对象类型的互相转换,而NSValue,则是实现结构体对象与对象类型的互相转换. NSNumber因为是实现基本数据类型与对象类型的互相转换,所以,必须是要有数据类型,而int ,char,BOOL,Float,Long,Integer等等等-都可以进行相应的转换 //1.将基本数据类型

Objective-C( Foundation框架 一 NSNumber(NSValue))

NSNumber: 是OC中处理数字的一个类 NSValue是NSNumber的子类 如何处理: 把int,float,double  包装成一个对象 使用NSNumber的好处: 可以把基本数据类型的数据,保存到数组或字典中 // 定义基本数据类型 int a = 10; float b = 2.2f; double d = 1.22; int x = 100; // int 包装成 NSNumber NSNumber *intObj = [NSNumber numberWithInt:a];

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

一.NSNumber OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的 NSNumber就有用了,它能够把基本数据类型包装成OC对象. // 将整形包装成OC对象 NSNumber *num1 = [NSNumber numberWithInt:120]; // 将浮点形包装成OC对象 NSNumber *num2 = [NSNumber numberWithDouble: