zoukankan      html  css  js  c++  java
  • OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

    //一: 迭代器

        //数组

        NSArray *arr=@[@"1",@"2",@"3",@"4",@"5"];

       NSEnumerator *enumerator = [arr objectEnumerator];

       NSString *str = nil;

       while (str = [enumerator nextObject]) {

       NSLog(@"%@",str);

        }

         

        // 字典

      //直接打印字典的vaule.

       NSDictionary *dic = @{@"1":@"2",@"3":@"4"};

       NSEnumerator *enumrator = [dic objectEnumerator];

       NSString *vaule = nil;

       while (vaule = [enumrator nextObject]) {

           NSLog(@"%@",vaule);

        }


    //二: 值对象 (相互转化)

    // 1: NSNumber

           // 那基本数据类型转换成对象类型.

         // Integer -> NSNumber

            NSInteger a =2;

           NSNumber *num = [[NSNumberalloc] initWithInteger:a];

           NSLog(@"%@",num);

        

         // NSNumber -> Integer

            //(1)

           NSInteger b = [num integerValue];

            //(2)

           NSNumber *number = @10;

           NSArray *arr = @[@"1",@10];

        

    // 2: NSValue

           // 把结构体和指针转换成对象类型.

            // 结构体的. 用于訪问自己的成员变量;不是对象调用自己属性的点语法.

        //NSRange -> NSValue

           NSRange range = {2,5};

           NSLog(@"%ld",range.length);

           NSValue *value = [NSValuevalueWithRange:range];

           NSArray *arr = @[value];

       // NSValue -> NSRange

           NSRange rangeVau = [value rangeValue];

       //指针(pointer) -> NSValue

           int a = 10;

           int *p =  &a;

           NSValue *pointer = [NSValuevalueWithPointer:p];

       //NSValue ->指针(pointer)

           int *p1 = [pointer pointerValue];



    //三: NSSet  NSMutableSet -- 集合.

       // NSSet是无序的.

        NSSet *set = [NSSetsetWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"2",nil];

       NSLog(@"%@",set);

       NSLog(@"%ld",set.count);

       NSLog(@"%@",[setanyObject]);

        NSLog(@"%d",[setcontainsObject:@"3"]);

     

        // 可变集合

        NSMutableSet *set1 = [NSMutableSetset];

        [set1addObject:@"9"];

        [set1addObject:@"8"];

       NSLog(@"%@",set1);

        [set1removeObject:@"9"];

       NSLog(@"%@",set1);

        // 遍历

       for (NSString *strin set1) {

           NSLog(@"%@",str);

        }




    //四: NSDate

       NSDate *date = [NSDatedate];

       NSLog(@"%@",date);

       // date 获取的时间不管哪个区,都是打印相相应的零时区    

       // 获取一下当前所在的时区.

        NSTimeZone *zone = [NSTimeZonesystemTimeZone];

       NSLog(@"%@",zone);

        

       // 获取一下和零时区相差的秒数.

       NSInteger sec = [zone secondsFromGMTForDate:date];

       NSLog(@"%ld",sec);

        

       // 通过相差的秒数,能获取到如今的时间.

        NSDate *newdate = [NSDatedateWithTimeIntervalSinceNow:sec];

       NSLog(@"%@",newdate);

        

        NSDate *times = [NSDatedateWithTimeIntervalSince1970:0];

       NSLog(@"%@",times);

        

       //练习1:找明天这时候的时间.

       NSDate *tomorrow = [NSDatedateWithTimeIntervalSinceNow:(sec + 24 *3600)];

       NSLog(@"明天的如今:%@",tomorrow);

     

        //练习2: 昨天这时候时间.

       NSDate *yesterday = [NSDatedateWithTimeInterval:(-24 *3600)sinceDate:newdate];

       NSLog(@"昨天的如今:%@",yesterday);

        

        //时间间隔

        // 相应的Double 类型, 能够是小数.

       //计算两个对象的时间间隔

       NSTimeInterval interval = [tomorrow timeIntervalSinceDate:yesterday];

       NSLog(@"%g",interval);


       // 练习3:计算当前时间与一个固定时间的差值.

        NSDate *unchange = [NSDatedateWithTimeIntervalSinceNow:36*3600];

       NSLog(@"固定时间:%@",unchange);

       NSLog(@"如今的时间%@",date);

       NSTimeInterval inte = [unchange timeIntervalSinceDate:date];

        

       NSLog(@"时差为:%g",inte);

       if (inte > 0 && inte <60) {

           NSLog(@"刚刚");

        }elseif( inte >= 60 && inte <=3600){

           NSLog(@"%g分钟前",inte/60);

            

        }elseif(inte > 3600 && inte <=3600*24){

           NSLog(@"%g小时前",inte/3600);

        }else{

           NSLog(@"超过%g",inte/3600/24);

        }

       

    //五:日期和字符串的相互转换.

    // NSDate -> NSString

    // 第一种方式:


       NSDate *date = [NSDatedate];

       NSString *datestr = [NSStringstringWithFormat:@"%@",date];

       NSLog(@"%@",datestr);


    // 另外一种方式:

     //时间的格式

        // yyyy-MM-dd  HH-mm-ss;

        // y

        // M

        // d

        // H 24小时制, h 12小时制

        // m

        // s

        

       //先设置一下时间的格式,要转换的时间要和格式相吻合.

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

        [formatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"];

       NSDate *date = [NSDatedate];

        // 通过格式,那指定的时间直接转换成NSString

       // 通过这样的方式,系统会把时间切换成当前时间,无时区之差.

       NSString *strdate = [formatter stringFromDate:date];

       NSLog(@"%@",strdate);


    // NSString -> NSDate

       //把时间又减去8小时.

        NSString *time =@"2015-7-23 17-19-50";

        NSDateFormatter *formatter2 = [[NSDateFormatteralloc] init];

        [formatter2 setDateFormat:@"yyyy-MM-dd HH-mm-ss"];

       NSDate *date = [formatter2 dateFromString:time];

       NSLog(@"%@",date);




  • 相关阅读:
    网络安全笔记1-局域网、DOS、用户与组、远程、NTFS、文件共享、DHCP、DNS、WEB、FTP、域、PKI、扫描与爆破
    ASM入网小助手卸载
    列表拖拽排序 ----vue.js
    如何让谷歌索引你的页面
    命令导入大数据库

    大数据-快读
    微服务参考文章
    Java-BigDecimal踩坑记录
    CF1285F Classical?
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6940675.html
Copyright © 2011-2022 走看看