Also habe ich einen Typalias erstellt, um einen Completion-Handler zu speichern, um später mit der iOS-Bibliothek von Stripe in eine Funktion namens submitTokenToBackend zu gelangen. Hier ist mein Code:Erwarteter Typ Vorher/Nachher ->, Erwartete Deklaration in Swift 3
// MARK: - Create Completion Handlers
typealias CompletionHandler = (_ token: AnyObject?, _ error: NSError?) -> Void
// MARK: - Submit Token To Backend
func submitTokenToBackend(completionHandler: CompletionHandler) {
}
// MARK: - STPPaymentCardTextFieldDelegate
func paymentCardTextFieldDidChange(_ textField: STPPaymentCardTextField) {
print("Card number: \(textField.cardParams.number) Exp Month: \(textField.cardParams.expMonth) Exp Year: \(textField.cardParams.expYear) CVC: \(textField.cardParams.cvc)")
self.buyButton.isEnabled = textField.isValid
}
// MARK: Initialize Card Params
let cardParams = STPCardParams()
func cardParamsFunc() {
cardParams.number = "4242424242424242"
cardParams.expMonth = 10
cardParams.expYear = 2018
cardParams.cvc = "123"
STPAPIClient.shared().createToken(withCard: cardParams){ (token, error) in
if let error = error {
print(error.localizedDescription)
} else if let token = token {
// HERE'S WHERE I'M GETTING ERRORS
self.submitTokenToBackend(completionHandler: CompletionHandler) -> Void {
if let error = error {
print(error.localizedDescription)
} else {
print("Show receipt page")
}
}
}
}
}
ich diese seltsamen Fehler bekommen, jetzt, in Swift 3 über meinen Abschluss-Handler nicht zu erwarten Typen haben. Auch kein Einzelfall. Irgendwelche Gedanken?
Hallo Rob. Die Funktion submitTokenToBackend mit Completion-Handler verwendet ein Argument des Completion-Handlers, die zuvor deklarierten Typaliäten ** typalias CompletionHandler = (_ token: AnyObject ?, _ error: NSError?) -> Void ** Was soll ich weitergeben, wenn nicht? Abschluss Handler? Die Argumente der Typalien? Würde das nicht den Punkt besiegen? –
Just doing ** self.submitTokenToBackend {** löst die Ausnahme aus ** Kontexttyp für die Closure-Argumentliste erwartet 2 Argumente, die nicht implizit ignoriert werden können ** mit einem Fix von ** _, _ in **, was die Fehler verursacht * * Aufeinander folgende Anweisungen in einer Zeile müssen durch ";" ** und ** Erwarteter Ausdruck getrennt werden ** –