ich nicht herausfinden kann, was mit dem folgenden falsch ist:Was ist falsch an dieser Swift-Syntax?
fileprivate func showInlineErrorMessage(_ message: String, forField textField: UITextField) {
// Show error message
errorLabel.text = message
errorLabel.isHidden = false
// Highlight field on which the error is
[usernameTextField, passwordTextField, birthYearTextField, genderTextField].forEach {
updateHighlightOnTextField($0!, highlight: $0 === textField)
}
}
Der spezifische Teil ist $0 === textField
Der Compiler die folgende Fehlermeldung angezeigt wird:
"?" must be followed by a call, member lookup, or a subscript
Das ist alter Code , so scheint es, dass sich in letzter Zeit etwas geändert haben könnte.
Die aufgerufene Funktion ist
fileprivate func updateHighlightOnTextField(_ textField: UITextField, highlight: Bool) {
let highlightView = textField.superview!
highlightView.layer.borderWidth = highlight ? 1.0 : 0.0
highlightView.layer.borderColor = highlight ? DefaultTheme.lineColorError.cgColor : nil
}
Was ist die Signatur der 'updateHighlightOnTextField' Methode? Warum erzwingst du $ 0 als erstes Argument? Sind eines oder mehrere der Textfelder optional? Wenn das erste Argument zwangsausgepackt ist, warum ist das nicht das zweite? – rmaddy
Ich habe gerade die obige Frage mit zusätzlichen Informationen aktualisiert. –