A UIView ha bisogno di cambiare un'etichetta di avvertimento a seconda del gestore completamento di un controllo personalizzato:chiusure nidificati non piace lista di argomenti
voucherInputView.completionHandler = {[weak self] (success: Bool) -> Void in
self?.proceedButton.enabled = success
self?.warningLabel.alpha = 1.0
if success
{
self?.warningLabel.text = "Code you entered is correct"
self?.warningLabel.backgroundColor = UIColor.greenColor()
}
else
{
self?.warningLabel.text = "Code you entered is incorrect"
self?.warningLabel.backgroundColor = UIColor.orangeColor()
}
UIView.animateWithDuration(NSTimeInterval(1.0), animations:{()-> Void in
self?.warningLabel.alpha = 1.0
})
Il blocco animazione finale mostra un errore nel modulo.
Cannot invoke 'animateWithDuration' with an argument list of type '(NSTimeInterval), animations:()-> Void)'
se chiamo questo da qualche parte al di fuori della chiusura di completamento funziona.
grazie mille =) !! –
Questo lo ha risolto per me, ma qualcuno avrebbe dovuto spiegare * perché * questo comportamento è così strano e inaspettato per molte persone? BTW, nel tuo esempio puoi sostituire '() -> Void' con' _' e aggiungere return usando '; ritorna alla stessa riga. INOLTRE, puoi scrivere ';() 'invece di un' ritorno 'a riga singola. :) – BastiBen
Questa è la risposta corretta !!! –