码迷,mamicode.com
首页 > 其他好文 > 详细

OC学习总结3

时间:2015-08-01 18:45:20      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1.NSNull


空对象,使用NSNull可以将表示“什么都没有”的值放到数组或者字典里
NSNull null
NSNull是一个类,[NSNull null]创建一个表示什么都没有的空对象
nil 是指向0x0地址的指针,可以为对象赋值,表示对象不存在
NULL 1.c类型的空指针 2.null在打印的时候表示空值
Nil [Class class]; 空的类
[NSNull null]得到的空对象的地址是固定的,所以可以在逻辑中判断是否是空的。不管在哪里创建的空对象,地址都是一样的。


2.NSData


字节流
NSString *str=@"hello world!";
将一个字符串转换成NSData的对象
NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%s",data.bytes);
将NSData对象转化成字符串
NSString *newStr=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",newStr);


3.NSSet


集合 哈希表 散列算法
NSSet 无序
NSArray 有序 都是存储不同的对象
创建集合和创建数组相似

NSSet *set=[[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four",nil];
NSLog(@"%@",set); 输出结果无序
NSSet *set2=[[NSSet alloc] initWithObjects:@"one",@"three",@"two",@"four",nil];
BOOL ret =[set isEqualToSet:set2];
NSLog(@"%d",ret);返回值YES 1
BOOL ret =[set isSubsetOfSet:set2];判断第一个集合是否是第二个集合的子集合 返回值YES 1

 

4.NSMutableSet


NSMutableSet是NSSet的子类,除了具有NSSet的方法外,还可以动态的添加删除元素

1 创建可变集合
NSMutableSet *set=[NSMutableSet set];
[set addObject:@"One"];
[set addObject:@"two"];
[set addObject:@"three"];
[set addObject:@"Two"];
NSLog(%"%@",set);输出One two three,两个two只保留一个
2 删除集合中的元素
[set removeObject:@"three"];还剩 One two
3 添加
NSSet *set2=[NSSet setWithObject:@"five",@"six",@"one",nil];
[set unionSet:set2];把set2中的内容合并到set中
[set minusSet:set2];把set2中的内容从set1中删除,只剩two了
##NSIndexSet 
指数集合 索引集合 是一个变种,和NSSet没有继承关系

 


5.NSDate

1 创建
NSDate *now =[NSDate date];
NSLog(@"now>>>>%@",now);
输出 2015-07-20 64420 +0000 比现在慢8小时,北京东8区,时区

2 通过时间差获取另外一个时间
NSTimeInterval interval=60*60*24;
NSDate *yesterday=[now dateByAddingTimeInterval:-interval];
%@ yesterday 输出昨天的时间
NSDate *tomorrow=[now dateByAddingTimeInterval:interval];
%@ tomorrow 输出明天的时间
NSDate *someDate = [NSDate dateWithTimeInterval:-60*60*24*7 sinceDate:tomorrow];
NSLog(@"someDate >>>> %@", someDate);
NSDate *date1 = [NSDate dateWithTimeIntervalSinceReferenceDate:60*60*24*365*15];
NSLog(@"date1 >>>> %@", date1);    
3 判断 比较日期
now isEqualToDate:tomorrow
NSDate *earlierDate = [tomorrow earlierDate:now]; // 早一点的日期
NSDate *laterDate = [tomorrow laterDate:now]; // 晚一点的日期
NSLog(@"earlierDate >>>> %@", earlierDate);
NSLog(@"laterDate >>>> %@", laterDate);

// 求时间差
NSTimeInterval interval1 = [now timeIntervalSinceDate:tomorrow];
NSLog(@"interval1 >>>>> %lf", interval1);

/************* NSTimeZone *************/


NSTimeZone *localZone = [NSTimeZone defaultTimeZone];
NSLog(@"localZone >>>>> %@", localZone);

NSTimeZone *Taipei = [[NSTimeZone alloc] initWithName:@"Asia/Taipei"];
NSLog(@"Taipei >>> %@", Taipei);


##NSTimeZone
1 时区
NSArray *allZone=[NSTimeZone knownTimeZoneNames];
for(NSTimeZone *zone in allZone){
NSLog(@"zone>>%@",zone);
}
2 本地默认时区
NSTimeZone *localZone=[NSTimeZone defaultTimeZone];
NSLog(@"local>>>%@",localZone); 输出Asia shanghai 亚洲上海
3 /************* NSDateFormatter *************/
// 通过对 NSDateFormatter的设置来输出任意格式的时间文本
NSDateFormatter *dateFromatter = [NSDateFormatter new];

[dateFromatter setDateStyle:NSDateFormatterShortStyle];
[dateFromatter setTimeStyle:NSDateFormatterShortStyle];

[dateFromatter setTimeZone:localZone];
NSLog(@"now >>>>>> %@", [dateFromatter stringFromDate:[NSDate date]]);

[dateFromatter setDateFormat:@"yy-M-dd HH:mm:ss 今天是第w 周 上午/下午:a "];
NSLog(@"now >>>>>> %@", [dateFromatter stringFromDate:[NSDate date]]);

// 把时间格式的字符串变成时间对象
NSString *timeStr = @"85------10/28 17:15:00";
[dateFromatter setDateFormat:@"yy------MM/dd HH:mm:ss"];
NSDate *birth = [dateFromatter dateFromString:timeStr];
NSLog(@"birth >>>> %@", birth);

 

6.NSTimer


计时器
[NSTimer scheduledTimerWithTimeInterval:1 target:student selector:@selector(sleep) userInfo:nil repeats:YES];

[[NSRunLoop mainRunLoop] run];

 

7.id

OC 语法推出一个id关键字,表示在编译过程中不指定类型。使用id类型编写代码对运行不会有任何影响。

OC学习总结3

标签:

原文地址:http://www.cnblogs.com/k-on/p/4694482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!