在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因。

简而言之,NSNumber就是实现基本数据类型与对象类型的互相转换,而NSValue,则是实现结构体对象与对象类型的互相转换。

NSNumber因为是实现基本数据类型与对象类型的互相转换,所以,必须是要有数据类型,而int ,char,BOOL,Float,Long,Integer等等等~都可以进行相应的转换

//1.将基本数据类型转换为NSNumber *类型的对象

int number = 10;

NSNumber *num = [NSNumber numberWithInt:number];

//2.将NSNumber *类型的对象还原成基本数据类型

int result = [num intValue];

其它的类型使用方法也是相同的方法,比如BOOL

BOOL isYes = YES;

NSNumber *isY = [NSNumber numberWithBool:isYes];

NSValue也是同样的道理

//1.将结构体转换成值对象

NSRange range = {5,8};

NSValue *value = [NSValue valueWithRange:range];

/2.将对象转换成原有的结构体

NSRange newRange = [value rangeValue];

//结构不能直接打印,用NSStringFromRange结构体转换成字符串打出来

NSLog(@"%@",NSStringFromRange(newRange));

注意:当然这只是单纯的介绍一样方法的使用,在做项目或者是做一些数据处理,类型转换时还需要注意当时的形式来使用。比如NSNumber可以实现大小的比较,并不是像字符串那样逐字逐的比较。

NSNumber *number1 = [NSNumber numberWithInt:17];

NSNumber *number2 = [NSNumber numberWithInt:123];

NSComparisonResult numberReslu = [number1 compare:number2];

NSLog(@"numberResult is %ld",numberReslu);//最后比较的结果是 - 1,而不是1,如果是字符串比较的话则是1.

Objective - C 值对象 NSNumber和NSValue的更多相关文章

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

    NSNumber: 是OC中处理数字的一个类 NSValue是NSNumber的子类 如何处理: 把int,float,double  包装成一个对象 使用NSNumber的好处: 可以把基本数据类型 ...

  2. iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

  3. NSNumber和NSValue

    在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现 ...

  4. NSNumber、NSValue、NSDate、NSObject

    注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...

  5. 02-Foundation-NSMutableString、NSNumber、NSValue、NSDate、NSArray

    目录: 一.NSMutableString可变字符串 二.NSNumber数字对象 三.NSValue 四.NSDate日期对象 五.NSArray数组对象 回到顶部 一.NSMutableStrin ...

  6. OC中常见的结构体,以及NSNumber、NSValue、NSDate的使用

    常见的结构体 NSPoint和CGPoint NSSize和CGSize NSRect 和 CGRect NSPoint和CGPoint的使用 NSPoint和CGPoint是同义的 typedef ...

  7. NSNumber 和 NSValue 的部分使用

    1.NSNumber 在Objective-c中有int,float,char等基本数据类型,但这些基本数据类型并不是对象,而数组,字典,字符串等容器中存放的都是对象类型,因此我们需要用到NSNumb ...

  8. OC NSNumber和NSValue和NSDate和NSData

    一 NSNumber // // main.m // 07-NSNumber // // Created by apple on 13-8-12. // Copyright (c) 2013年 itc ...

  9. NSNumber 与NSValue

    NSNumber与NSValue关系与作用 .由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们 ...

随机推荐

  1. selenium浏览器操作

    在元素定位中xpath使用的还算比较多,介绍一下常见的firfox和chrome浏览器插件安装 一.浏览器定位工具安装 1.firfox firfox比较简单,主要浏览器自带的定位功能也比较强大国内也 ...

  2. c#执行bat批处理文件,并通过线程将结果显示在控件中

    核心代码如下: Process p = new Process(); p.StartInfo.FileName = filePath; p.StartInfo.UseShellExecute = fa ...

  3. SQL:实现流水账的收入、支出、本期余额

    有多组数据,分别是收入,支出,余额,它们的关系是:本期余额=上次余额+收入-支出 /* 测试数据: Create Table tbl([日期] smalldatetime,[收入] int ,[支出] ...

  4. ES6特性

    一.ES6特性: let, const, class, extends, super, arrow functions, template string, destructuring, default ...

  5. powerdesigner导出word

    1.网上下载word模板,或者是自制模板 2.报告->导出,选择刚才下载的模板,导出即可

  6. Redis复制与可扩展集群搭建

    抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一 ...

  7. css中 input的button默认原始的样子

    以往我们写css时,让一行文字垂直居中. 会设置line-height等于height比如: 当我把这个原理 放在button上时  会是这个样子的. 以下都是火狐浏览器环境 有没有发现一个现象,他们 ...

  8. 考虑virtual函数以外的选择

    在C++中,有四种选择可以替代virtual函数的功能: 1.non-virtual interface(NVI)手法,这是一种template method模式.它以public non-virtu ...

  9. 评论Beta版本发布

    1.  新蜂:俄罗斯方块 俄罗斯方块在完成了核心的游戏部分基础上增加了两个小功能,后续的内容还一些没完成,所以界面空出来很多板块,当前版本加入了下一个方块的预览功能,还加入了本地磁盘的排行榜.但是比起 ...

  10. jQuery MiniUI开发系列之:UI和数据分离

    使用MiniUI需要注意:UI和数据是分离的. 传统的WEB开发,开发者经常将数据库操作.服务端业务.HTML标签写在一个页面内. 这样会造成开发的混乱,并且难以维护和升级. 使用MiniUI开发的时 ...