NSDateComponents 8.0后的改动

简介:

- (NSDateComponents *)components:(NSCalendarUnit)unitFlags fromDate:(NSDate *)date

这个方法基本上都用过,获取当前NSDate对象之后,从中提取出NSDateComponents类型的某个元素。但是最近升级IOS8之后发现密密麻麻几十个报错,基本上都是在说'NSMonthCalendarUnit' is deprecated:first deprecated in iOS 8.0,百度了一下也没看到清楚的解决方方法,只好动手查Reference。略有收获,与大家分享一下。

解决问题的方法有两个。

方法一:在Apple的Reference里面给出。原文如下:

enum {

   NSEraCalendarUnit  = kCFCalendarUnitEra ,

   NSYearCalendarUnit  = kCFCalendarUnitYear ,

   NSMonthCalendarUnit  = kCFCalendarUnitMonth ,

   NSDayCalendarUnit  = kCFCalendarUnitDay ,

   NSHourCalendarUnit  = kCFCalendarUnitHour ,

   NSMinuteCalendarUnit  = kCFCalendarUnitMinute ,

   NSSecondCalendarUnit  = kCFCalendarUnitSecond ,

   NSWeekCalendarUnit  = kCFCalendarUnitWeek ,

   NSWeekdayCalendarUnit  = kCFCalendarUnitWeekday ,

   NSWeekdayOrdinalCalendarUnit  = kCFCalendarUnitWeekdayOrdinal ,

   NSQuarterCalendarUnit  = kCFCalendarUnitQuarter ,

   NSWeekOfMonthCalendarUnit  = kCFCalendarUnitWeekOfMonth ,

   NSWeekOfYearCalendarUnit  = kCFCalendarUnitWeekOfYear ,

   NSYearForWeekOfYearCalendarUnit  = kCFCalendarUnitYearForWeekOfYear 

   NSCalendarCalendarUnit  = (1 << 20),

   NSTimeZoneCalendarUnit  = (1 << 21),

};

 

typedef NSUInteger  NSCalendarUnit;

所以只要把左边的会报错的换成右边对应的枚举值就OK了。


方法二:xcode提示警告的时候旁边就会有提示,可能因为屏幕不够宽挡住,以NSMonthCalendarUnit为例,换成NSCalendarUnitMonth也就可以了

目录
相关文章
|
7月前
|
测试技术 API
修改bug引入更多bug怎么办?
修改bug引入更多bug怎么办?
144 0
|
7月前
|
数据可视化 Go 开发工具
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
79 0
|
开发工具 git
Git派生的项目提交合并请求之后代码被覆盖
Git派生的项目提交合并请求之后代码被覆盖
333 0
|
存储 缓存 开发工具
git的几种实用操作(合并代码与暂存复原代码)
git的几种实用操作(合并代码与暂存复原代码)
307 1
git的几种实用操作(合并代码与暂存复原代码)
|
存储 开发工具 git
使用“要整合的更改”解决冲突是什么意思?底层原理是什么?
使用“要整合的更改”解决冲突是什么意思?底层原理是什么?
410 0
SVN回滚代码时,提示冲突怎么办
SVN回滚代码时,提示冲突怎么办
87 0
SVN回滚代码时,提示冲突怎么办
|
程序员 开发工具 git
三行代码让你的git记录保持整洁
笔者最近在主导一个项目的架构迁移工作,由于迁移项目的历史包袱较重,人员合作较多,在迁移过程中免不了进行多分支、多次commit的情况,时间一长,git的提交记录便混乱不堪,随便截一个图形化的git提交历史给大家感受一下。
140 0
|
JavaScript Dubbo Java
不小心将测试代码提交到生产环境?别慌,教你 6 种方法秒解决!
不小心将测试代码提交到生产环境?别慌,教你 6 种方法秒解决!
|
开发工具 git
Git版本控制系统回退操作(五)
Git版本控制系统回退操作 1.工作区回退 1)在file1文件中随便写点内容
246 0
Git版本控制系统回退操作(五)
|
缓存 索引
代码没有任何改动,为什么程序执行会有Bug?
题记:工作中经常遇到开发不同的版本,如版本5.1、版本5.2,5.2版本是在5.1版本上的升级,会修改已有几个模块的功能或者新增功能。但对于其中一个模块M,没有做任何修改,奇怪的是,为什么5.2版本的模块M会有Bug?
171 0