NSNumber与NSValue
来源:互联网 发布:招风耳矫正知乎 编辑:程序博客网 时间:2024/05/29 10:26
Main.m
int main(int argc, const char * argv[]){/*____________________NSNumber的使用______________________________*/ //1.创建NSNumber(包装基本数据类型) NSNumber *intNum = [NSNumber numberWithInt:100]; //将整型数据封装成number对象 NSNumber *longNum = [NSNumber numberWithLong:12345678]; NSNumber *floatNum = [NSNumber numberWithFloat:3.14f]; NSNumber *charNum = [NSNumber numberWithChar:'a']; NSNumber *boolNum = [NSNumber numberWithBool:FALSE]; //添加到数组中 NSArray *arrary = @[intNum,longNum,floatNum,charNum,boolNum]; NSLog(@"arrary:%@",arrary); //2.解包 int intValue = [intNum intValue]; long longValue = [longNum longValue]; float floatValue = [floatNum floatValue]; char charValue = [charNum charValue]; BOOL boolValue = [boolNum boolValue]; //3.优化语法// NSNumber *intNum = [NSNumber numberWithInt:100]; //等价于 NSNumber *intNum1 = @100; NSNumber *floatNum1 = @3.14; NSNumber *boolNum1 = @YES; NSNumber *charNum1 = @'a'; /*____________________NSValue的使用______________________________*/ //NSValue可以对结构体进行包装,NSValue是NSNumber的父类 //1.系统中已经存在的结构体 NSRange range = {1,3}; //封装成对象 NSValue *rgValue = [NSValue valueWithRange:range]; //解包 NSRange rg = [rgValue rangeValue]; NSLog(@"rg.location:%ld rg.length:%ld",rg.location,rg.length); NSPoint point = {2.3,3.5}; NSValue *pValue = [NSValue valueWithPoint:point]; NSPoint p = [pValue pointValue]; //2.对自定义结构体封装和解包 //定义结构体 struct WXPoint { float x; float y; }; struct WXPoint point1 = {5.6,7.8}; //封装 NSValue *wxValue = [NSValue value:&point1 withObjCType:@encode(struct WXPoint)]; //解包 struct WXPoint point2; [wxValue getValue:&point2]; NSLog(@"x:%.2f y:%.2f",point2.x,point2.y); /*____________________NSNUll的使用______________________________*/ // NSArray *nullArrary = @[@1,nil,@2,@3]; //错误,nil不能存放在数组中 NSNull *null1 = [NSNull null]; NSNull *null2 = [NSNull null]; NSArray *nullArrary = @[@1,null1,@2,null2,@3]; //在数组中可以存在NSNull类型的对象 NSLog(@"%@",nullArrary); NSLog(@"%ld",nullArrary.count); // for (id item in nullArrary) {// if (item != [NSNull null]) {// continue;// }// NSLog(@"%ld",[nullArrary indexOfObject:item]);// } for (int i=0; i<nullArrary.count; i++) { id item = [nullArrary objectAtIndex:i]; if (item == [NSNull null]) { NSLog(@"%d",i); } } return 0;}
0 0
- NSNumber与NSValue
- NSNumber与NSValue
- nsvalue与nsnumber
- NSNumber与NSValue
- Foundation中的NSNumber与NSValue
- NSNumber NSValue与NSDate 详解
- NSNumber,NSValue
- NSValue/NSNumber
- NSNumber与NSValue封装非object类型
- NSNumber、NSValue、NSData区别与联系
- NSValue / NSNumber 拆包与封装
- NSNumber与NSValue的基本使用
- 黑马程序员 oc随记 NSNumber、NSValue与NSDate
- NSNumber,NSValue,NSNull
- NSNumber、NSValue和NSNull
- NSNumber,NSValue和NSData
- NSNumber和NSValue
- NSNumber NSValue NSNull NSDate
- linux进程状态D和Z的处理
- 集合与数组NSSet
- 二分查找
- 维护兼容性
- 集成Tomcat插件到Eclipse
- NSNumber与NSValue
- Android Binder知识简介
- 如何查看goldengate版本
- 日期与时间戳NSDate
- 我要发布
- 开箱即用!Android四款系统架构工具
- 最小生成树模板(poj3625)
- Visual C++ 常用快捷键
- 第二十八篇: 学习笔记