为什么约会总是今天,虽然我通过不同的约会

sar*_*rah 0 ios swift

这是我的代码

 let dateValue = formatterDate.dateFromString(request.date)
        print("da = \(request.date)")
        let dayValue = NSDate()
        let compnentsDate = myCalendar.components(.Year, fromDate: dateValue!)
        let componentsDay = myCalendar.components(.Year, fromDate: dayValue)
        if compnentsDate.year == componentsDay.year && compnentsDate.month == componentsDay.month && compnentsDate.day  == componentsDay.day {
            cell.dateLabel.text = "today"
        }else {
            if compnentsDate.year == componentsDay.year && compnentsDate.month == componentsDay.month && compnentsDate.day  == (componentsDay.day + 1 ){
            cell.dateLabel.text = "tomorrow"
            }else {
                cell.dateLabel.text = request.date
            }

        }
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在制作印刷品,印刷品的价值是:

da = Jan, 25, 2016
Run Code Online (Sandbox Code Playgroud)

但是,代码总是转到第一个if语句,告诉我"今天"

告诉我为什么?

我的代码有什么问题?

rma*_*ddy 5

您需要在调用components:fromDate:函数时指定所需的所有组件.

你需要传递.Year,.Month.Day,不只是.Year.像这样的东西:

let compnentsDate = myCalendar.components([.Year , .Month , .Day], fromDate: dateValue!)
let componentsDay = myCalendar.components([.Year , .Month , .Day], fromDate: dayValue)
Run Code Online (Sandbox Code Playgroud)