OC -- NSNumber

// 定义NSNumber的方法1:
NSNumber *intNumber = [[NSNumber alloc] initWithInt:5];
NSNumber *floatNumber = [[NSNumber alloc] initWithFloat:3.15f];
NSNumber *doubleNumber = [[NSNumber alloc] initWithDouble:6.8];
NSNumber *charNumber = [[NSNumber alloc] initWithChar:‘A‘];
// 定义NSNumber的方法2:
NSNumber *intNumber2 = [NSNumber numberWithInt:6];
// 判断两个NSNumber是否相等
BOOL ret = [intNumber isEqualToNumber: intNumber2];
// 比较两个NSNumber的大小
if([intNumber compare: intNumber2] == NSOrderredAscending){
    NSLog(@"<");
}else if([intNumber compare: intNumber2] == NSOrderedSame){
    NSLog(@"=");
}else if([intNumber compare: intNumber2] == NSOrderedDescending){
    NSLog(@">");
}
// 还原基本类型数据
NSLog(@"%d", [intNumber intValue]);
NSLog(@"%f", [floatNumber floatValue]);
NSLog(@"%f", [doubleNumber doubleValue]);
NSLog(@"%c", [charNumber charValue]);

时间: 2024-08-01 17:14:11

OC -- NSNumber的相关文章

OC NSNumber NSInteger 直接赋值问题

一 问题描述 类对象的属性id类型是NSNumber ,设置UI 的 tag(NSInteger类型)时候,数据失真. id属性是1,tag 取出来为19. 1.1 UI tag 属性 // @property(nonatomic) NSInteger tag; 1.2 错误代码如下 //tagNumber 是 NSNumber 类型 [button setTag:tagNumber]; 1.3 修改代码如下 //通过integerValue方法 中转 [button setTag:[tagNu

OC语言基础

.h(头文件) .m(源文件c.oc) .mm(源文件c.oc.c++) gcc -c      -o    汇编 -framework Foundation链接  NS开头 字符串对象加@ oc中完全兼容c的函数库 NSLog可以自动换行,并且提供文件名编译时间等 需要包含头文件,每一个框架都有一个主头文件,其名字和主头文件相同,主头文件包含了这个框架的所有头文件. #import可以自动防止头文件重复包含. 链接时,需要手动连接框架. 10.多文件编译:所有对象都是以指针形式存在:跟c类似.

NSNumber 、 NSValue 、 日期处理 、 集合类 、 NSArray(一)

1 基本数据类型的封装 1.1 问题 我们所学的所有基本数据类型,如int.float.double.char等,都不是对象,不能向它们发送消息.然而,在Foundation中的许多类,如NSArray,都要求使用对象作为其值,因此不能将任何基本数据类型直接存储到这些类的对象当中.要存储任何基本数据类型,都必须将这些数据封装成对象. 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:封装整型数据 代码如下所示: #import <Foundation/Foundation.h> int

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

oc的包装类 NSValue NSNumber

我们都知道oc是面向对象的,但是oc是由c语言扩展而来的,c语言中的int 等类型都不是对象,那么oc 是如何拥有“对象”特征的呢? oc提供了NSValue 和 NSNumber 来封装c语言的基本类型,这样就具有来面向对象的特征了... NSValue是NSNumber的父类. NSValue代表更通用的包装类,可以包装 short int float char 对象id 指针  通过对这些的包装就可以添加到NSArray等集合中了: NSNumber代表更具体的包装类,主要有三个方法:(x

iOS开发-OC篇-NSSet,NSNumber

最近回顾了OC的一些基本知识,发现确实遗忘了很多重要的东西,今天整理了一些小的知识点,和大家分享一下. iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. 1.NSNumber包装类 1>  普通初始化 NSNumber * num1 = [[NSNumber alloc] initWithInt:20]; NSNumber * num2 = [NSNumber numberWithChar:'a']; 2>字面量初始化 NSNumber * num3 =

[OC Foundation框架 - 12] NSNumber

1.概念 NSArray,NSDictionary只能放OC对象,不能放入基本数据类型 必须使用包装类NSNumber,把基本数据类型包装成OC对象 不支持自动包装解包 1 void number() 2 { 3 NSNumber *number = [NSNumber numberWithInt:10]; 4 NSMutableArray *array = [NSMutableArray array]; 5 [array addObject:number]; 6 7 NSLog(@"%@&qu

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:

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

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