首页 > 代码库 > 03-NSNumber、NSValue、NSDate

03-NSNumber、NSValue、NSDate

1.NSNumber

由于OC的集合只能存放OC对象,不能存放基本数据类型

int类型为例:

NSNumber *num = [NSNumber numberWithInt:22];

NSDictionary *dict = @{
                       @"name" : @"whb",
                       @"age" : num
                       };
NSNumber *num1 = dict[@"age"];
// 转换成int类型
int a = [num1 intValue];

编译器特性:

      将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@A; // NSNumber对象 
@"A"; // NSString对象

将age变量包装成NSNumber对象
int age = 10;
@(age);       // 这一句相当于 [NSNumber numberWithInt:age];
 @20  将 20包装成一个NSNumber对像
NSArray *array = @[
                   @{@"name" : @"jack", @"age" : @20},
                   @{@"name" : @"rose", @"age" : @25},
                   @{@"name" : @"jim", @"age" : @27}
                   ];
 

2.NSValue

 

// 结构体--->OC对象
CGPoint p = CGPointMake(10, 10);

// 将结构体转为Value对象
NSValue *value =http://www.mamicode.com/ [NSValue valueWithPoint:p];

// 将value转为对应的结构体
// [value pointValue];
NSArray *array = @[value ];

3.NSDate

一般用法:

// 创建一个时间对象
    NSDate *date = [NSDate date];
    // 打印出的时候是0时区的时间(北京-东8区)
    NSLog(@"%@", date);
    
    NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
    
    // 从1970开始走过的秒数
    NSTimeInterval seconds = [date2 timeIntervalSince1970];   
    // [date2 timeIntervalSinceNow];

 

NSDate转换为NSString类型

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转换为NSDate

  // 09/10/2013
    NSString *time = @"2014/09/10 16:01";
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy/MM/dd HH:mm";
    
    NSDate *date = [formatter dateFromString:time];