15、OC 包装类(NSNumber、NSValue)
来源:互联网 发布:婚礼布置设计软件 编辑:程序博客网 时间:2024/06/01 08:07
在讲解包装类之前,我们首先看这几个类型:NSInteger、NSUInteger、CGFloat,这几个类型并不是包装类,而是基本类型,NSInteger和NSUInteger在64位和各种类似64位的各种平台上表现为long和unsigned long,而在32位上表现为int型。CGFloat在64位平台上相当于double,而在32位平台上相当于float。
NSValue和NSNumber都是包装类,NSValue用于包装单个short、int、long、float、char、指针、id等数据类型,通常NSArray、NSSet、NSDictionary等集合、字典要求它们的元素必须是对象,而NSValue很好的包装了这些基本数据类型。NSNumber主要用于包装C语言的各种基本数据类型,NSNumber主要有以下几类方法:
+numberWithxxx: 这是个类方法,可以将基本类型直接包装成NSNumber。
-initWithxxx: 该实例方法首先需要创建一个NSNumber对象,再使用一个基本数据类型的值来初始化。
-xxxValue:该实例方法返回该NSNumber对象包装的基本类型的值。
xxx代表bool,char,double,float,int,Integer,long,long long,short,unsigned int,unsignedInteger,unsigned long,unsigned long long,unsigned short中的一种。
OC允许自动装箱机制,但是自动装箱不支持ARC,所以在开启ARC时会报错
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //使用类方法创建 NSNumber* pai = [NSNumber numberWithDouble:3.1415]; NSLog(@"%@",pai); //NSNumber是一个类簇,使用同一个类名,创建不同对象 NSNumber *intNumber = [[NSNumber alloc]initWithInt:10]; NSNumber *floatNumber = [[NSNumber alloc]initWithFloat:3.14f]; NSNumber *doubleNumber = [[NSNumber alloc]initWithDouble:10]; NSNumber *charNumber = [[NSNumber alloc]initWithChar:'A']; //比较大小 BOOL ret = [intNumber isEqualToNumber:doubleNumber]; NSLog(@"%d",ret); if([intNumber compare:floatNumber]==NSOrderedAscending){ NSLog(@"<"); }else if([intNumber compare:floatNumber]==NSOrderedSame){ NSLog(@"="); }else if([intNumber compare:floatNumber]==NSOrderedDescending){ NSLog(@">"); } //还原基本数据类型数据 NSLog(@"%d",[intNumber intValue]); NSLog(@"%f",[floatNumber floatValue]); NSLog(@"%f",[doubleNumber doubleValue]); NSLog(@"%c",[charNumber charValue]); //OC允许自动装箱机制,但是自动装箱不支持ARC,所以在开启ARC时会报错 //NSNumber* i1 = 10; } return 0;}
0 0
- 15、OC 包装类(NSNumber、NSValue)
- NSValue和NSNumber(OC的包装类)
- 10 包装类(NSValue和NSNumber)
- 包装类---NSNumber和NSValue
- 032.NSValue NSNumber 包装类
- 032.NSValue NSNumber 包装类
- object-c包装类--NSValue和NSNumber
- OC中的NSNumber、NSValue
- oc -13 NSNumber NSValue NSDate
- OC中的NSNumber和NSValue
- OC-7.NSSet NSValue NSNumber
- iOSDay14之OC NSNumber + NSValue
- 黑马程序员-OC笔记(七)集合类 NSNumber、NSValue NSDate
- OC类 之 NSData NSDate NSSet NSNumber NSValue
- OC基础—NSNumber、NSValue、NSDate
- OC--Foundation-NSDictionary,NSNumber,NSDate,NSValue
- OC--NSValue、 NSNumber、NSNull、NSDate的使用
- 黑马程序员--oc:NSString、NSValue、NSNumber、NSDate
- 《HotSpot实战》笔记3运行时数据区
- 数据挖掘作业——K-Means算法之C++实现
- CQRS架构PPT分享
- [学习笔记]Java抽象类和接口
- poj 3904 Sky Code【容斥原理】
- 15、OC 包装类(NSNumber、NSValue)
- 关于C++的sizeof()操作符
- 1030存代码
- poj-3669
- Codeforces Beta Round #9 (Div.2 Only) C.Hexadecimal's Numbers 二进制思想、技巧题
- 数据库
- 数据挖掘作业——FP Tree算法之C++实现
- 拥抱Android:编译nodejs搭建移动平台
- LeetCode Find Minimum in Rotated Sorted Array II