博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)
阅读量:5220 次
发布时间:2019-06-14

本文共 3670 字,大约阅读时间需要 12 分钟。

//一: 迭代器

    //数组

    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);

转载于:https://www.cnblogs.com/blfbuaa/p/6940675.html

你可能感兴趣的文章
mysql group by的用法 注意
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Python中的join()函数的用法
查看>>
Hive教程(1)
查看>>
黑马程序员-指针的初步认识
查看>>
提示未授予用户在此计算机上的请求登录类型
查看>>
20180708-Java变量类型
查看>>
CSS编写技巧
查看>>
linux中fork()函数详解 ...
查看>>
12个常用的js正则表达式
查看>>
win7:你需要来自Administrators的权限才能对此文件进行修改的一个文件
查看>>
正则表达式划分CSV
查看>>
笔记 2、分布式系统基础设施
查看>>
git
查看>>
Cisco设备管理
查看>>
【ACM从零开始】LeetCode OJ-Delete Node in a Linked List
查看>>
矢量图形比对模块
查看>>
Java集合框架学习
查看>>
第16周总结
查看>>
将Cent0S 7的网卡名称eno33改为eth0
查看>>