黑马程序员___Foundation__NSNumber/NSDate/NSValue

NSNumber

因为集合类中和NSString中是不能写入C基本数据类型的,所以可以利用NSNumber把基本数据类型包装成一个OC对象

把一个基本数据类型转化成OC对象

NSNumber *num = [NSNumber numberWithInt:10]

把OC对象转化成10进制的基本数据类型

int a = [num intValue]

类似的还有其他的基本数据类型

   

 NSNumber *n = [NSNumber numberWithDouble:10.5];

    

    

 int d = [n doubleValue];

快速包装一个基本数据类型

@20

int a = 10

@q

NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue

NSValue可以包装一些复杂的数据类型,比如结构体,枚举

结构体--->OC对象

    

 CGPoint p = CGPointMake(10, 10);

    

将结构体转为Value对象

 NSValue *value = [NSValue valueWithPoint:p];

 NSArray *array = @[value ];

    

将value转为对应的结构体

  

[value pointValue];

    

NSDate

创建一个时间对象

NSDate *date = [NSDate date];

创建一个比data晚5秒的时间对象

NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];

从1970开始走过的秒数

NSTimeInterval seconds = [date2 timeIntervalSince1970]

日期格式化类

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]

设置时间格式

formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

创建一个自定义时间格式的时间对象  

NSString *time = @"2011/09/10 18:56"

NSDate *date = [formatter dateFromString:time]

原文地址:https://www.cnblogs.com/jia694600474/p/4012799.html