OC基础数据类型之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]);
时间: 2024-10-11 20:04:49

OC基础数据类型之NSNumber的相关文章

OC基础数据类型之字符串,数组和字典

//-------------字符串----------------- //字符串的初始化: //1: NSString *string = @"我是非凡程序员!"; NSLog(@"%@",string); //2: NSString *string2 = [NSString stringWithFormat:@"我在非凡学习了%i个月",1]; NSLog(@"%@",string2); //输出字符串长度: long l

【转】 OC基础数据类型-NSSet

原文 : http://www.cnblogs.com/GISerYang/p/3340937.html 1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合.集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序. 1 NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two",@"

OC基础数据类型-NSData

1.NSData,数据,当我们需要把一些信息写入到文件里或发送到网络上,我们需要把这些数据转换下,变成纯粹的0.1字符流 1 NSString * str = @"hello, world!"; 2 NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //NSString转换成NSData类型 3 NSLog(@"%s", data.bytes); 4 NSString * newStr = [

OC基础(21)

Foundation框架介绍 NSString基本概念 字符串读写 字符串比较 字符串搜索 字符串截取 字符串替换 字符串与路径 字符串与基本数据类型转换 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: bloc

OC常用数据类型大全解

UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动画转场用的很多 Blocks的定义 Blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { re

oc基础知识(转)

1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouch Media Core Services Core OS -------------------- System Framework OC的类声明,定义域 OC关键字定义为  @class O-C特有的语句for(..in ..)迭代循环,其他的条件和循环语句和c一样 OC对面向对象的概述 (1)

黑马程序员--oc基础第十篇(foundation框架下、集合)

十 . oc基础(Foundation框架下) 1.下面介绍几种OC对象类型的存储结构:NSArray,NSDictionary,NSSet,以及基本数据类型封装类. NSNumber:*既然这几种数据结构都是用来存放对象类型的那么基本数据类型想要放入其中就要先对他们进行封装.使用NSNumber对基本数据类型进行封装. // // Created by keeganlee on 15/3/2. // Copyright (c) 2015年 keeganlee. All rights reser

OC基础(23)

NSArray基本概念 NSArray 遍历 NSArray排序 NSArray文件读写 NSArray 与字符串 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30p

黑马程序员--oc基础第六篇

六. oc基础知识(内存管理下) 总结:内存管理代码规范 1.只要调用alloc那么就必须调用release: 2.set方法的代码部分 *基本数据类型直接赋值. *如果是oc对象类型 - (void) setCar:(Car *)car { if(_car!=car) { [_car release]; _car=[Car retain]; } } 3.dealloc 部分的代码规范 *一定要[super dealloc ]放在最后面. *对self(当前)所拥有的其他对象做一次release