码迷,mamicode.com
首页 > 其他好文 > 详细

OC基础数据类型之NSNumber

时间:2015-04-03 09:40:35      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:objective-c   nsnumber   对象   数据      

假如你能够很轻松的理解NSString的定义和用法,那么NSNumber的话联想一下你就大概能够明白其中的道理和关系了。

首先你必须知道C语言的基础数据类型在OC中不是所有地方都支持使用,那么碰到例如copy等不支持使用的情况,我们就必须用OC的基本数据类型了。

那么OC的基本数据类型是什么?其实它就是将C语言的数据类型全部打包封装到了一个类里面。这个类里面各种各样的C语言基础数据类型都有,例如int,float,double等

当然OC里NSNumber的功能相对要强大很多,它不仅仅包含了C的基本数据类型,里面还实现了比较大小,比较时候相等一些较为常用的方法。

这些都是方便大家理解写的一些自己的观点,具体例子看下面的文章总结出来的东西。

1、NSNumber:专门用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象

1 //基本数据类型
2 //专门用来装基础类型的对象
3 NSNumber * intNumber = [[NSNumber alloc] initWithInt:5];
4 NSNumber * floatNumber = [[NSNumber alloc] initWithFloat:3.14f];
5 NSNumber * doubleNumber = [[NSNumber alloc] initWithDouble:6.7];
6 NSNumber * charNumber = [[NSNumber alloc] initWithChar:A];

NSNumber是一个类簇,表面来看水一个类,实际上可以创建各种类的对象

 

1 NSNumber * intNumber2 = [NSNumber numberWithInt:6];

判断两个NSNumber是否相等

1 BOOL ret = [intNumber isEqualToNumber:intNumber2]; //这种比较也是可以跨不同对象的,比如:比较intNumber和floatNumber

比较两个整型的NSNumber的大小

技术分享
1 //比较两个整型的NSNumber的大小
2 if ([intNumber compare:intNumber] == NSOrderedAscending) {
3     NSLog(@"<");
4 }else if([intNumber compare:intNumber2] == NSOrderedSame){
5     NSLog(@"=");
6 }else if([intNumber compare:intNumber2] == NSOrderedDescending){
7     NSLog(@">");
8 }
技术分享

通过以下方法可以还原这些基本数据类型的数据

1 //通过以下方法可以还原这些基本数据类型的数据
2 NSLog(@"%d", [intNumber intValue]);
3 NSLog(@"%f", [floatNumber floatValue]);
4 NSLog(@"%f", [doubleNumber doubleValue]);
5 NSLog(@"%c", [charNumber charValue]);

OC基础数据类型之NSNumber

标签:objective-c   nsnumber   对象   数据      

原文地址:http://blog.csdn.net/shockyu/article/details/44834803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!