Oc-语句总结(5)-NSnumber/NSvalue/NSDate

1,NSNumber
  ❤   NSNumber 主要作用是将基本数据类型包装成对象放入数组或者字典
  ❤   NSNumber 要转换成什莫基本数据类型就   xxxvalue  
         //NSNumber 创建                        int/float/double......
        NSNumber *num = [ NSNumber numberWithInt : 33 ];
        NSLog(@"%@",num);
        NSNumber *num1 = [ NSNumber numberWithFloat : 3.3 ];
       
NSLog ( @"%@" ,num1);
       
NSNumber *num2 = [ NSNumber numberWithBool : YES ];  // 布尔类型
        NSLog(@"%@",num2);
  ❤  // 现在的写法
        NSNumber *num3 = @10 ;
       
NSNumber *num4 = @1.1 ;
       
NSNumber *num5 = @YES ;
       
       
// 将对象追加到可变数组
       
NSMutableArray *arr = [ NSMutableArray array ];
        [arr
addObject :num5];
        NSLog(@"%@",arr);

2.NSValue
 ❤ NSValue 主要用于将结构体或指针或枚举类型的数据 (CG 类型 ) 包装成对象存入数组或字典中
  NSNumberNSValue的子类
  例(1)
       //1. 创建 CG 结构体
         CGPoint point = CGPointMake ( 2 , 2 );
       
//2. CG 包装成对象
       
NSValue *value = [ NSValue valueWithPoint :point];
      
//3. 创建可变数组对其添加
       
NSMutableArray *arr = [ NSMutableArray array ];
        [arr
addObject :value];
        NSLog(@"%@",arr);
 
        // 将存入的 CG 取出来 - NSValue 在转成结构体
         CGPoint p = [value pointValue ];
        NSLog(@"x = %.2lf,y = %.2lf",p.x,p.y);

❤例(2)
       // 建立结构体
       
typedef   struct {
           
int year;
           
int month;
           
int day;
        }Date;
      
// 赋值
        
Date p;
        p.
year     = 2016 ;
        p.
month = 2 ;
        p.
day     = 5 ;
       
// 包装       参数 1 是你要把谁变成对象,就 (&) 传谁的地址
                   
// 参数 2 是固定类型: @encode( 结构体类型 )
       
NSValue *val = [ NSValue valueWithBytes :&p objCType : @encode ( Date )];
       
// 创建可变数组并存入
       
NSMutableArray *arr1 = [ NSMutableArray array ];
        [arr1
addObject :val];
       
NSLog ( @"%@" ,val);
      
       
// 将结构体拿出
       
Date newD;
       
// 参数 : 你要用谁来接收 , 就传 & 谁的地址
        [val
getValue :&newD];
       
NSLog ( @"%d,%d,%d" ,newD. year ,newD. month ,newD. day );
       

❤3.NSDate的使用
解释:可以进行一些常见的日期/时间处理,一个NSDate就代表一个时间,[NSDate date]返回的是当前   时间。
1.获取当前日期
        // 调取当前时间(格林威治时间)
        NSDate *date = [ NSDate date ];
        NSLog(@"%@",date);
        // 设置时区(东八区时间)
        NSTimeZone *zone  =  [ NSTimeZone systemTimeZone ];  // 设置时间间隔
        NSInteger  iterval   = [zone secondsFromGMTForDate:date]; // 重新生成时间
        NSDate *localeDate =[date dateByAddingTimeInterval:iterval];//s生成当前时间localDate
        NSLog(@"%@",localeDate);
2.格式化日期   
      // 格式化时间 ( 把日期格式化字符串 )
        //1.new
       
NSDateFormatter *df = [ NSDateFormatter new ];
       
//2. 调用 NSDateFormatter, 传入你想打印的格式
        df.
dateFormat = @"yyyy MM dd HH:mm:ss" ;
       
NSString *str =  [df stringFromDate :date];
        NSLog(@"%@",str);
注意:一般1、2是一起出现的
        // 字符串转回时间
         NSDate * dd = [df dateFromString :str];
        NSLog(@"%@",dd);   // 格林威治时间

  3. 计算时间
    明天
        //1) 明天的此刻   确定时长精确到秒
       
NSTimeInterval secondsPerDay = 24 * 60 * 60 ;
       
// 距离现在有多久
       
NSDate *tomorrow = [ NSDate dateWithTimeIntervalSinceNow :secondsPerDay];
        NSLog(@"myDate = %@",tomorrow);
      昨天
        //2) 昨天的现在
        NSTimeInterval secondsPerDay1 = 24 * 60 * 60 ;
       
NSDate *now = [ NSDate date ];
       
// 计算时间,减去时长
        NSDate *yesterDay = [now addTimeInterval:-secondsPerDay1]; NSLog(@"yesterDay = %@",yesterDay);
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值