Hallo nach der Migration zu swift3. Ich habe dieses Problem? Wissen deine Leute was falsch?Mehrdeutige Referenz in swift3
mehrdeutig Verweis auf Mitglied "/"
let rateForPeriod = interestRate!/Double(100)/Double(K.monthsEachYear)
Hallo nach der Migration zu swift3. Ich habe dieses Problem? Wissen deine Leute was falsch?Mehrdeutige Referenz in swift3
mehrdeutig Verweis auf Mitglied "/"
let rateForPeriod = interestRate!/Double(100)/Double(K.monthsEachYear)
Wenn ich Sie wäre, würde ich optionale Bindung zu prüfen, ob interestRate ist nil oder nicht verwenden.
let interestRate: Double? = 0.4
if let interestRate = interestRate {
let rateForPeriod = interestRate/Double(100)/Double(1)
}
Herzlichen Glückwunsch! Möglicherweise haben Sie gerade einen Fehler im Compiler gefunden!
Lasst uns ein paar Variationen des Codes versuchen:
Dies schlägt fehl:
let optional: Double? = 1
let result = optional!/Double(1)/Double(1)
Dies funktioniert:
let optional: Double? = 1
let unwrapped = optional!
let result = unwrapped/Double(1)/Double(1)
Dies schlägt fehl:
let rateForPeriod = (Double(1) as Double?)!/Double(1)/Double(1)
Aber das funktioniert :
let rateForPeriod = ((Double(1) as Double?)! as Double)/Double(1)/Double(1)
So funktioniert das auch:
let optional: Double? = 1
let rateForPeriod = optional! as Double/Double(1)/Double(1)
, dass eine Nebenwirkung (wahrscheinlich Fehler) der neuen optionalen Abwickeln Regeln zu sein scheint.
Beachten Sie, dass nur eine Division zu einem Zeitpunkt tun, funktioniert wie erwartet:
let optional: Double? = 1
let rateForYear = optional!/Double(1)
let rateForPeriod = rateForYear/Double(1)
Was sollen wir tun?
Versuchen Sie, ob Sie interestRate nicht optional, verwenden Sie eine Schutzklausel oder geben sie einen Standardwert wie folgt machen: let rate = interestRate ?? 0
.
Art von 'interestRate'? –
doppelte Art bro –
es scheint Fehler gegangen, wenn ich so schreibe var rateForPeriod = interestRate!/Double (100) rateForPeriod = rateForPeriod/Double (K.MonatsEachYear) Ist es richtig, dies zu beheben? –