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&×<=3600){ NSLog(@"%ld分钟前",(NSInteger)times/60); } else if(times >3600&×<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
- OC-值对象, NSSet, NSDate
- OC_值对象, NSSet 和 NSDate
- NSDate NSSet
- OC类 之 NSData NSDate NSSet NSNumber NSValue
- OC--迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转化
- 黑马-OC-Foundation-NSSet常用对象类
- OC-NSSet
- OC-NSdate
- OC-NSDate
- oc NSDate
- OC-集合对象NSSet基本使用和方法介绍
- 黑马程序员--ios基础--oc-foundation--NSSet、NSDictionary、NSNumber、NSValue、NSDate
- NSSet、NSMutableSet-OC+class
- Foundation -- OC集合 --NSSet
- OC基础数据类型-NSSet
- OC 基础之----NSSet
- OC基础-NSSet集合
- OC—NSSet
- JavaScript语言基础(一)
- 微信JS-SDK
- uva 10305 Ordering Tasks(拓扑排序)
- 北国之春
- 关于PL\SQL无法在64位Client下使用的原因及解决办法
- OC-值对象, NSSet, NSDate
- NYOJ-111分数加减法
- IOS - 1 - 开发环境的搭建
- hdoj-1856-More is better【并查集】
- JavaSE Socket发送文件
- Multiply Strings
- webstorm注册码
- 双向链表
- chrome开发工具