编译器无法对该表达式进行类型检查

时间:2019-04-21 14:00:44

标签: swift

我想将差异数据分成60个并将其打印为双数。当我将其打印为字符串时,它似乎不是数字的一小部分。打印数字“ n”时出现此问题。我该怎么办?

我的错误:编译器无法在合理的时间内对这个表达式进行类型检查;尝试将表达式分成不同的子表达式

if let date = formatter.date(from: receivedTimeString) {
    let receivedTimeHoursMinutes = Calendar.current.component(.hour, from: date) * 60
    let receivedTimeMinutes = Calendar.current.component(.minute, from: date)
    let totalreceivedTimeMinutes = receivedTimeHoursMinutes + receivedTimeMinutes

    let todayHoursMinutes = Calendar.current.component(.hour, from: Date()) * 60
    let todayMinutes = Calendar.current.component(.minute, from: Date())
    let todayTimeMinutes = todayHoursMinutes + todayMinutes

    let difference = todayTimeMinutes - totalreceivedTimeMinutes
    let str = String(difference)

    switch true {
    case difference > 60:
        let deger = String(difference / 60)
        guard let n = NumberFormatter().number(from: deger) else { return }

        print("deger", deger)
        self.labelTimerFarkSonuc.text = (n) + (" ") + ("Saattir") + (" ") + (durum)
    case difference == 0:
        self.labelTimerFarkSonuc.text = (n) + (" ") + ("Dakikadır")  + (" ") + (durum)
    case difference < 60:
        self.labelTimerFarkSonuc.text = (n) + (" ") + ("Dakikadır")  + (" ") + (durum)
    default:
        self.labelTimerFarkSonuc.text = (n) + (" ") + ("Dakikadır")  + (" ") + (durum)
    }

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,

如果您希望将以下代码的结果作为小数,

let deger = String(difference / 60) // Dividing by INT will not give fractions.

将其更改为以下内容。

let deger = String(difference / 60.0)