auf Fehler i eine Funktion zu implementieren versuchen Integer aus Einefunktion mit Try-Catch in schnellenGeworfen Ausdrucksart immer nicht bestätigt Typ
//Enum
enum LengthError: ErrorType {
case NoInt
case Default
}
// get Max length From Key else throws error
func getMaximumLength() throws -> Int? {
guard let length = Int(getStringForKey("KEY")) else {
throw LengthError.NoInt
}
return length
}
// This function
func getMaxLength() -> Int {
var maxLength: Int?
do {
maxLength = try getMaximumLength()
} catch LengthError.NoInt {
maxLength = 20
} catch LengthError.Default {
maxLength = 20
} catch {
maxLength = 20
}
return maxLength
}
aber Compiler zeigt Fehler erhalten bei getMaximumLength() Func als „Thrown Ausdruckstyp 'String' bestätigt nicht 'ErrorType' ".
Wie behebt man dieses Problem?
@Hamish wo ich genau schließende Klammer am fehle? und ya derzeit nicht besorgt über optionale Rückkehr, das kann leicht später gelöst werden., Trotzdem vielen Dank dafür – sulabh
ohh, das ist kein Problem in meinem tatsächlichen Code, es könnte während des Einfügens hier im Stapel verpasst haben. – sulabh
Könnten Sie bitte ein [mcve] posten? Der einzige Fehler, den Ihr aktueller Code gibt (wenn er in Swift 2.3 kompiliert wird), ist, dass Sie versuchen, ein optionales Element in einer Funktion zurückzugeben, die eine nicht-optionale Rückgabe ('return maxLength' in' getMaxLength() ') und die Funktion erwartet 'getStringForKey (_ :)' ist nicht definiert. – Hamish