扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
学了这么久OC我们都知道OC中的类分为系统类和自定义的类,当我们在使用系统为我们提供的类时有时往往不能满足我们的需要,例如,字符串NSString类提供了比较字符串的方法compare,为数组排序时系统默认的是升序,当需要为数组按降序排序时,一种途径是需要新建一个类写一个降序的方法,而另一个途径就是系统提供的category(分类,类目),分类(类目,category)的目的为了给没有源代码的类添加方法(只能添加方法,不能添加实例变量),是扩充一个类功能的方式之一,为原有类扩充的方法会成为原类的一部分,直接用系统类对象或者系统类调用该方法, 使用即可.
成都创新互联企业建站,10余年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站设计、网站制作中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。分类也分为,h(接口部分)和.m(实现部分),.h文件中写方法的声明,.m文件中写方法的实现,
(1),新建一个类,在新建类时选择Objective-C category,
建立之后,在.h文件里@interface + 要扩展的类的类名 +(分类名)@end结束,
先声明分类方法
/两个字符串比较对象;
- (NSComparisonResult)sortDescending:(NSString *)descending;
在.m文件里实现
//两个字符串比较对象;
- (NSComparisonResult)sortDescending:(NSString *)descending
{
return -[selfcompare:descending];
}
在main函数里可以直接使用,如:
对数组array按照降序排序
NSArray *array = @[@"dd",@"bb",@"aa",@"ee",@"mm"];
NSArray *arrDescending = [array sortedArrayUsingSelector:@selector(sortDescending:)];
NSLog(@"%@",arrDescending);
输出结果为
(
mm,
ee,
dd,
bb,
aa
)
二, 日期类常用方法用法 NSDate
1,基本用法:
1),创建一个对象,赋值为当前日期date 创建的NSDate对象,获得的永远是0时区的时间,我们是东八区,需要加上8个小时
NSDate *date = [NSDatedate];
2),创建一个明天此时的日期(时间间隔是以秒为单位的)dateWithTimeIntervalSinceNow:
NSDate *tomorrow = [NSDatedateWithTimeIntervalSinceNow:24 * 60 * 60];
NSLog(@"%@",tomorrow);
创建一个昨天此时的日期
NSDate *yesterday = [NSDatedateWithTimeIntervalSinceNow:-24 * 60 * 60];
NSLog(@"%@",yesterday);
3).获取两个日期的时间间隔 timeIntervalSinceDate: 实现过程是前者减去后者
NSTimeInterval intervil = [tomorrow timeIntervalSinceDate:yesterday];
NSLog(@"%.1f",intervil/60/60/24);
4),比较日期的早晚
(1),获得两个日期中较早的日期 earlierDate:
NSDate *earlier = [tomorrow earlierDate:yesterday ];
NSLog(@"%@",earlier);
(2),获得两个日期中较晚的日期 laterDate:
NSDate *later = [tomorrow laterDate:yesterday ];
NSLog(@"%@",later);
(3),两个日期比较 compare:
NSComparisonResult类型是基本数据类型duoble的重定义
NSComparisonResultcomparDate = [tomorrow compare:yesterday ];
NSLog(@"%ld",comparDate);
2,日期类与字符串的相互转换
(1), NSDateFormatter是一个日期格式类,将日期以一定的格式进行转换,(原理,转换成字符串),分为三步
NSDate *dateNow = [NSDatedate];
第一步: 创建日期格式类对象
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
第二步: 指定日期格式 formatter
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
HH表示24小时制,hh表示12小时制,MM表示月份,mm表示分钟,DD表示当前是该年的第几天,dd表示当月天数,ss表示秒数,如果年份为yy,则输出时只显示年份的后两位,如果为其他的则显示完整年份
第三步: 转换 stringFromDate:
NSString *dateStr = [[NSStringalloc] init];
dateStr = [formatter stringFromDate:dateNow];
(2),将日期格式转换为NSDate对象,即将日期按照指定的格式转换为日期格式串,
例子:
将日期格式串转换为日期对象@"2008年05月01日10时23分1秒" NSString *datestr = @"2008年05月01日10时23分18秒";
第一步: 创建日期格式类对象
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
第二步:
(1),设置日期的格式 (有四种)
[formatter setDateStyle:NSDateFormatterFullStyle];
(2),设置时间的格式 (有四种)
[formatter setTimeStyle:NSDateFormatterFullStyle];
(3)设置日期格式(一定要和日期格式串中的日期格式保持一致)
[formatter setDateFormat:@"yyyy年MM月dd日HH时mm分ss秒"];
第三步: 转换 dateFromString: 将格式串转换为日期对象
NSDate *date2 = [formatter dateFromString:datestr];
NSLog(@"%@",date2);
要注意的是:日期类对象输出默认的是0时区的时间,如: 2014-08-12 02:38:30 +0000,其实是中国标准时间上午2014-08-12 10:38:30
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流