OC-值对象, NSSet, NSDate

来源:互联网 发布:淘宝会员名跟昵称区别 编辑:程序博客网 时间:2024/05/01 21:53

迭代器

NSEnumerator *enumetator=[arr objectEnumerator];    NSString *str=nil;    while (str=[enumetator nextObject]) {        NSLog(@"%@",str);    }

字典

NSEnumerator *enumetator2=[dic objectEnumerator];    NSString *str=nil;    while (str=[enumetator2 nextObject]) {        NSLog(@"%@",str);        }        // 打印的就是value

值对象

把基本数据类型转换称对象类型

//    INteger->NSNumber    NSInteger a=10;    NSNumber *number=[[NSNumber alloc]initWithInteger:a];    NSLog(@"%@",number);// NSNumber->Integer    NSInteger b=[number integerValue];// 用字面量的方法可以NSNumber *num=@10;    NSArray *arr1=@[@"1",@10]; // 用字面量的方法之后就不会报错可以用了

NSValue

// 作用是 把结构体和指针换成对象类型  // 结构体的 . 是访问变量,对象调用属性是点语法    NSRange range={2,5};    NSLog(@"%ld",range.length);    // NSRange->NSvalue    NSValue *value=[NSValue valueWithRange:range];    NSLog(@"%@",value);    // NSValue->NSRange    NSRange rangeV=[value rangeValue];

对a这个变量进行取地址

int a=10;    int *p=&a;    NSValue *pointer=[NSValue valueWithPointer:p];    int *p1=[pointer pointerValue];

找到某个电影名

NSString *movieName=dic[@"result"][1][@"movieName"];    NSLog(@"%@",movieName);

打印所有的电影名

NSArray *arr=dic[@"result"];// 遍历这个数组    for (NSDictionary *dic in arr) {        NSLog(@"%@",dic[@"movieName"]);    }

找到数据中的名字

NSString *str=dic[@"events"][2][@"owner"][@"name"];    NSLog(@"%@",str);

找到两个时间 进行拼接

NSString *str1=dic[@"events"][2][@"begin_time"];    NSString *str2=dic[@"events"][2][@"end_time"];    NSString * newEnd = [str2 substringFromIndex:10];    NSLog(@"%@",newEnd);    NSString *newTime = [NSString stringWithFormat:@"%@-%@",str1,newEnd];    NSLog(@"%@",newTime);

找到 category对应的film有几个

NSMutableArray *arr=dic[@"events"];NSInteger num=0;    for (NSMutableDictionary *temp in arr) {        if ([temp[@"category"] isEqualToString:@"film"] ) {            num++;        }    }    NSLog(@"%ld",num);

NSSet 集合

// NSSet 是无序的    // NSSet不能有重复的元素,如果有重复的元素则只打印一个    // 集合里的元素必须是对象类型NSSet *set= [NSSet setWithObjects:@"1",@"2",@"3",@"4",@"5",@"2", nil];NSLog(@"%@",set);NSLog(@"%ld",set.count);

返回其中的某一个元素

NSLog(@"%@",[set anyObject]);    NSLog(@"%d",[set containsObject:@"3"]);

普通方式创建一个结合的对象

NSSet *set=[[NSSet alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil    ];    NSLog(@"%@",set);

可变的集合

NSMutableSet *set=[NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"5", nil];    NSLog(@"%@",set);

添加元素

[set addObject:@"7"];//    NSLog(@"%@",set);

删除元素

[set removeObject:@"5"];  NSLog(@"%@",set);

用forin进行遍历

for (NSString *str in set) {        NSLog(@"%@",str);    }

NSDate是一个日期的类

NSDate *date=[NSDate date];    NSLog(@"%@",date);

date获取的时间无论在哪个区,都是打印相对应的零时区的时间

获取一下当前所在的时区

NSTimeZone *zone=[NSTimeZone systemTimeZone];    NSLog(@"%@",zone);

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

NSInteger seconds=[zone secondsFromGMTForDate:date];    NSLog(@"%ld",seconds);

通过相差的秒数,能获取到现在的时间

NSDate *localDate=[NSDate dateWithTimeIntervalSinceNow:(8*3600)];NSLog(@"%@",localDate);
    NSDate *times=[NSDate dateWithTimeIntervalSince1970:0];    NSLog(@"%@",times);

明天这个时候的时间

NSDate *tomorrow=[NSDate dateWithTimeIntervalSinceNow:(8*3600+(24*3600))];    NSLog(@"%@",tomorrow);

昨天这个时候的时间

NSDate *yestoday=[NSDate dateWithTimeIntervalSinceNow:(8*3600-(24*3600))];NSLog(@"%@",yestoday);

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

NSTimeInterval interval =[tomorrow timeIntervalSinceDate:date];    NSLog(@"%g",interval);

练习
计算当前时间和一个固定时间的时差,如果差值在60秒内,输出”刚刚”,如果在60秒外3600秒内,输出”xx分钟前”,如果3600秒外,3600*24秒内,输出”xx小时前”

NSDate *date1=[NSDate date];    NSDate *date2=[NSDate dateWithTimeIntervalSinceNow:1000];    NSTimeInterval times=[date2 timeIntervalSinceDate:date1];    if (times<60) {        NSLog(@"刚刚");    }    else if(times>=60&&times<=3600){        NSLog(@"%ld分钟前",(NSInteger)times/60);    }    else if(times >3600&&times<3600*24){        NSLog(@"%ld小时前",(NSInteger)times/3600);    }

日期的格式

把日期和字符串的一个互相的转换

// NSDate->NSString    // 第一种方式//    NSDate *date=[NSDate date];//    NSString *dateStr=[NSString stringWithFormat:@"%@",date];//    NSLog(@"%@",dateStr);

时间的格式

// yyyy-mm-dd hh-mm-ss    // H 24小时制  h 12小时制    // 先设置一下时间的格式,要转换的时间要和格式相吻合    NSDateFormatter *formatter=[[NSDateFormatter alloc]init];    [formatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"];

NSDate->NSString

NSDate *date=[NSDate date];    // 通过格式,把制定的时间直接转换成NSString    // 通过这种方式,系统还会把时间切换成当前的时间    NSString *strDate=[formatter stringFromDate:date];    NSLog(@"%@",strDate);

字符串->NSDate

// 把时间又减掉8小时    NSString *timeStr=@"2015-7-23 17-18-10";    NSDate *date1=[formatter dateFromString:timeStr];    NSLog(@"%@",date1);
0 0
原创粉丝点击