2015-01-02 3 views
0
let dateComponents = NSCalendar.currentCalendar().components(.MonthCalendarUnit, fromDate: dateCreated, toDate: NSDate(), options: 0) 

두 달 간의 차이를 찾으려고하지만이 함수는 이 아니며이 협조합니다. 그것은 "외침"에 대해 불평을 계속합니다. 그러나 그것은 분명히 거기에 있어야합니다.왜 Swift는이 NSCalendar 메서드 호출을 허용하지 않습니까?

+2

그런데'.MonthCalendarUnit' 대신'.CalendarUnitMonth'가 사용됩니다. – Rob

답변

1

스위프트 목표 - C와 같은 options의 값으로 0을 허용하지 않습니다. 대신 nil를 사용

let dateComponents = NSCalendar.currentCalendar().components(.MonthCalendarUnit, fromDate: dateCreated, toDate: NSDate(), options: nil) 

그런 다음 당신이해야 할 dateComponents.month을 수행하여 개월 수를 얻을 수있다.

+0

신속한 2.0 사용 [] –

2
extension NSDate { 
    func monthsFrom(date:NSDate) -> Int{ 
     return NSCalendar.currentCalendar().components(.CalendarUnitMonth, fromDate: date, toDate: self, options: nil).month 
    } 
} 

let dateX = NSCalendar.currentCalendar().dateWithEra(1, year: 2014, month: 11, day: 28, hour: 5, minute: 9, second: 0, nanosecond: 0)! 
let dateY = NSCalendar.currentCalendar().dateWithEra(1, year: 2015, month: 1, day: 1, hour: 22, minute: 51, second: 0, nanosecond: 0)! 

let months = dateY.monthsFrom(dateX) // 1 
관련 문제