黑马程序员___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]