码迷,mamicode.com
首页 > 其他好文 > 详细

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

时间:2015-10-03 11:55:56      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

 

一、NSNumber

OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的 NSNumber就有用了,它能够把基本数据类型包装成OC对象。

  // 将整形包装成OC对象
  NSNumber *num1 = [NSNumber numberWithInt:120];
  // 将浮点形包装成OC对象
  NSNumber *num2 = [NSNumber numberWithDouble:0.5];
  // 把包装后的数据存放到OC数组中
  NSArray *array = @[@"年龄",num1];
  // 遍历数组
  for (id obj in array)
  {
    NSLog(@"%@", obj);
  }	

通过NSNumber的方法能够把所有基本数据类型包装成OC对象,再存放到OC数组中。要把NSNumber包装后的对象还原成基本数
  // 将NSNumber类型的对象还原成基本数据类型
  int age = [num1 intValue];
  double a = [num2 doubleValue]; 
还可以 使用编译器特性快速包装一个基本数据:
// 快速包装 @120; @0.5; @NO;
// 使用快速包装,再存放到数组中 NSArray *array2 = @[@"hello",@100, @YES, @0.3, @‘H‘];

二、NSValue

 NSValue和NSNumber相似,具体来说前者是后者的父类。NSValue可以包装复杂的基本数据类型,如结构体,枚举。

int main()
{
  
  // OC结构体
  CGPoint point = CGPointMake(11, 12);
  
  // 将结构体包装成OC对象
  NSValue *val = [NSValue valueWithPoint:point];
  
  // 将包装后的OC对象存放到OC数组
  NSArray *array = @[val];
  
  NSLog(@"%@", array);
  
  return 0;
}
  三、NSDate
 这个类是与时间相关的,日期的格式化。 
// 创建日期对象
  NSDate *date = [NSDate date];
  
  // 日期格式化类
  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  
  // y 年  M 月  d 日
  // m 分 s 秒  H (24)时  h(12)时
  formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 固定写法,不能随便写
  
  // 将日期格式化成字符串对象
  NSString *str = [formatter stringFromDate:date];
  
  NSLog(@"%@", str);
  // 格式化的参数都有固定含意,不能随意写。上面是将日期格式化输出,下面再来将字符串中的日期
  // 指定日期为
  NSString *time = @"2022/05/01 13:30";
  
  // 创建日期格式化对象
  NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
  // 格式化日期
  formatter2.dateFormat = @"yyyy/MM/dd HH:mm";
  
  NSDate *date2 = [formatter2 dateFromString:time];
  NSLog(@"%@", date2);
 
 

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

标签:

原文地址:http://www.cnblogs.com/yzjxdz/p/4853126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!