Итак, я создал typealias для хранения обработчика завершения, чтобы позже перейти к функции, называемой submitTokenToBackend, используя библиотеку iOS от Stripe. Вот мой код:Ожидаемый тип до/после ->, ожидаемая декларация в 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")
}
}
}
}
}
Я получаю эти странные ошибки, то теперь, в Swift 3 относительно мой обработчик завершения, не имея ожидаемых типов. Не обособленный инцидент. Есть предположения?
Привет Роб. Функция submitTokenToBackend с обработчиком завершения принимает аргумент обработчика завершения, объявленные ранее типы сообщений ** typealias CompletionHandler = (_ токен: AnyObject ?, _ error: NSError?) -> Void ** Что я должен пройти, если не Обработчик завершения? Аргументы тоталий? Разве это не победит? –
Просто делать ** self.submitTokenToBackend {** вызывает исключение ** Контекстный тип для списка аргументов закрытия ожидает 2 аргумента, которые не могут быть неявно проигнорированы ** с исправлением ** _, _ in **, что приводит к ошибкам * * Последовательные утверждения на строке должны быть разделены символом «;» ** и ** Ожидаемое выражение ** –