【Foundation】19-NSNumber、NSValue和NSDate


一、NSNumber

     1.1 NSNumber的作用:由于集合类型只能存放OC类型数据,无法存放int类型数据。当在开发中需要int类型的数据时,可以将int类型包装成NSNumber对象再存放。

     1.2 NSNumber和int的转换

    // 将数值10转换为NSNumber类型,并且赋值到字典中
    NSNumber *num = [NSNumber numberWithInt:10];
    NSDictionary * dict = @{
                            @"name":@"jack",
                            @"age":num
                            };
    // 获取字典中age对应的值
    NSNumber *num2=dict[@"age"];
    // 将NSNumber对象的值转换为int类型
    int a = [num2 intValue];
    NSLog(@"%d",a);


    1.3 NSNumber和double的转换
     NSNumber *n = [NSNumber numberWithDouble:10.5];
     int d = [n doubleValue];


    1.4 NSString和int的转换

     NSString *str = [NSString stringWithFormat:@"%d",20];//int转NSString
     NSLog(@"%d",[str intValue]);  // NSString转int


    1.5 快速将其它转换成NSNumber对象

          @20 //将20包装成一个NSNumber对象

          @10.5 

          @YES

          @‘A’ // NSNumber对象

          @“A” // NSString对象

         *将int变量包装成NSNumber对象

         int age = 100;

         @(age);


二、NSValue

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

   2.2 NSNumber只能包装基于int类型的数据,无法包装结构体,有局限性。而NSValue可以将任何基本数据类型转换为OC对象,如结构体等。

    CGPoint p = CGPointMake(10, 10);
    // 将结构体转换为Value对象
    NSValue *value = [NSValue valueWithPoint:p];
    NSArray *array=@[value]; // 将value放进数组
    // 将value转换为对应的结构体
    [value pointValue];


三、NSDate

#import <Foundation/Foundation.h>

int main() {
    
    //创建一个时间对象
    NSDate *date = [NSDate date];
    // 打印出的时间是0时区的时间
    NSLog(@"%@",date);
    
    // 比参数date的时间晚5秒
    NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
     NSLog(@"%@",date2);
    
    // 从1970年开始走过的秒数
    NSTimeInterval seconds = [date2 timeIntervalSince1970];
    
    // date2时间距离现在经过的秒数
    [date2 timeIntervalSinceNow];
    
    
    // 日期的格式化
    // 将日期转换为string
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // y:年 M:月 d:日 H:(24)时 h:(12)时 m:分 s:秒
    formatter.dateFormat=@"yyyy/MM/dd HH:mm:ss";
    // 将日期按照上面的格式转换为string
    NSString *str = [formatter stringFromDate:date];
    NSLog(@"%@",str);
    
    // 将string转换为日期
    NSString *time = @"2015/01/02 14:20";
    NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
    formatter2.dateFormat=@"yyyy/MM/dd HH:mm";
    NSDate *date3 = [formatter2 dateFromString:time];
    NSLog(@"%@",date3);
    
    
    return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值