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: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);
时间: 2024-10-25 05:49:50

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)的相关文章

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

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

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

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

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

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

前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java中集合的思想,应该还有一个Set,是的,OC中有NSSet和NSMutableSet这两个类的,但是,这里我为什么不单独介绍了呢?因为他的操作和NSArray是非常相似的,只是他和NSArray有一个区别就是他不能放重复数据,而且他也是无序的.其他没什么了,所以就不单独介绍了,而且NSSet在后面的

OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类

在之前的一篇文章中介绍了Foundation框架中的NSString类和NSMutableString类: http://blog.csdn.net/jiangwei0910410003/article/details/41788223 今天我们继续来看一下Foundation框架中的NSArray类和NSMutableArray类,其实NSArray类和Java中的List差不多,算是一种数据结构,当然我们从这两个类可以看到,NSArray类是不可变的,NSMutableArray类是可变的.

(转载)OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类

在之前的一篇文章中介绍了Foundation框架中的NSString类和NSMutableString类,今天我们继续来看一下Foundation框架中的NSArray类和NSMutableArray类,其实NSArray类和Java中的List差不多,算是一种数据结构,当然我们从这两个类可以看到,NSArray类是不可变的,NSMutableArray类是可变的. 下面就先来看一下NSArray类: 一.NSArray类 1 // 2 // main.m 3 // 16_NSArray 4 /

OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类:http://blog.csdn.net/jiangwei0910410003/article/details/41809719,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的.

(转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDirctionary类 1 // 2 // main.m 3 // 19_NSDictionary 4 // 5 //