一NSNumber 类型转换

NSNumber 把基本数据类型包装成一个对象类型。NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue。

@20 等价于 [NSNumber numberWithInt:20];

NSNumber 将各种数据类型包装成NSNumber类型

@10.3 //包装小数为NSNumber

@ //包装整数 为NSNumber

@"abc" //包装字符型( NSString) 为NSNumber

@'abc' //包装字符 (NSNumber) 为NSNumber

int age = 100

@age  报错,系统会认为这是一个关键字。

@(age)  正常。()括号表示取值,表示age是一个整体。

二 int,NSInteger,NSUInteger,NSNumber

1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。

2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。

3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。

NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的,比如在一个NSMutableArray里面这样用:

NSMutableArray *array = [[NSMutableArray alloc]init];

[array addObject:[NSNumber numberWithInt: 88]];   //错误

[array addObject:[NSNumber numberWithInt: @88]];  //正确

Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。

例如以下创建方法:

+ (NSNumber *) numberWithChar: (char) value;

+ (NSNumber *) numberWithInt: (int) value;

+ (NSNumber *) numberWithFloat: (float) value;

+ (NSNumber *) numberWithBool: (BOOL) value;

将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

- (char) charValue;

- (int) intValue;

- (float) floatValue;

- (BOOL) boolValue;

- (NSString *) stringValue;

例子:

NSNumber *num = [NSNumber numberWithInt:];
NSInteger integer = [num intValue];

三 NSDate

 NSDate *date = [NSDate date];
NSLog(@"%@" , date);
NSDate *date2 = [NSDate dateWithTimeInterval: sinceDate: date];
NSLog(@"%@" , date2);

第2行:打印的是0时区(格林威治时间),北京时间:东八区

第3行: 和date比较相差5秒的时间间隔 。

 NSTimeInterval seconds = [date timeIntervalSince1970];
NSLog(@"%ld" , seconds); [date timeIntervalSinceNow]

第1行: 从1970到现在是多少秒? 1970是电脑诞生的日子。

第4行: 从左面时间到现在是多少秒?

 NSDate *date3 = [NSDate date];
NSDateFormatter *formatter =[[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str =[formatter stringFromDate:date] ;
NSLog(@"date=%@" , str);

第3行: yyyy代表年,MM代表月,dd代表日, HH代表24小时,hh代表12小时 ,mm代表分,ss代表秒。

 NSDateFormatter *formatter1 =[[NSDateFormatter alloc]init];
formatter1.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *time = @"2016-02-22 21:49:30";
NSDate *date4 = [formatter1 dateFromString:time];
NSLog(@"date4=%@" , date4);

第4行:把NSString转换成NSDate。

最新文章

  1. [LeetCode] Clone Graph 无向图的复制
  2. Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术
  3. Modelsim-altera 仿真 顶层原理图的解决办法
  4. SQL导入Excel文件
  5. mongodb数据库备份导入导出数据
  6. 快速的mysql导入导出数据(load data和outfile)
  7. XE6移动开发环境搭建之IOS篇(4):VMware9里安装Mac OSX 10.8(有图有真相)
  8. 微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求
  9. JavaScript--DOM事件(笔记)
  10. MSSQL AlwaysOn中的“主角色中的连接”和“可读辅助副本”初探
  11. oc学习之路----内存管理
  12. Django中url匹配规则的补充
  13. IO文件
  14. XJOI练习2神奇的供水系统
  15. FORTH基本堆栈操作
  16. logistics回归简单应用——梯度下降,梯度上升,牛顿算法(一)
  17. python函数默认参数作用域
  18. log4j 详细使用教程【转载】
  19. 【转】IE内嵌google chrome frame解决浏览器兼容问题
  20. java的两种冒泡算法

热门文章

  1. 如何获取内联样式的width值
  2. 课题:如何培养自己的SEO资源
  3. 加密算法使用(三):用用BASE64
  4. WorldWind源码剖析系列:WorldWind如何确定与视点相关的地形数据的LOD层级与范围
  5. Web API 实现JSONP或者安装配置Cors跨域
  6. 在matlab中对hsv进行均匀量化和非均匀量化
  7. Android:30分钟弄明白Touch事件分发机制
  8. [转]Extundelete--数据恢复软件
  9. 【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历
  10. threejs构建web三维视图入门教程