Ho difficoltà a capire un problema che sto riscontrando. Per semplificare, userò il metodo UIView. In sostanza, se scrivo il metodoBlocco di completamento Swift
UIView.animateWithDuration(1, animations: {() in
}, completion:{(Bool) in
println("test")
})
funziona benissimo. Ora, se faccio lo stesso metodo, ma la creazione di una stringa in questo modo:
UIView.animateWithDuration(1, animations: {() in
}, completion:{(Bool) in
String(23)
})
smette di funzionare. Errore del compilatore: Argomento mancante per il parametro "ritardo" nella chiamata
Ora, ecco la parte strana. Se io faccio lo stesso codice esatto di quello che non riesce, ma basta aggiungere un comando di stampa in questo modo:
UIView.animateWithDuration(1, animations: {() in
}, completion:{(Bool) in
String(23)
println("test")
})
inizia a lavorare di nuovo.
Il mio problema è fondamentalmente la stessa cosa. Il mio codice:
downloadImage(filePath, url: url) {() -> Void in
self.delegate?.imageDownloader(self, posterPath: posterPath)
}
Non funziona. Ma se io cambio.
downloadImage(filePath, url: url) {() -> Void in
self.delegate?.imageDownloader(self, posterPath: posterPath)
println("test")
}
o anche:
downloadImage(filePath, url: url) {() -> Void in
self.delegate?.imageDownloader(self, posterPath: posterPath)
self.delegate?.imageDownloader(self, posterPath: posterPath)
}
funziona benissimo. Non riesco a capire perché questo sta accadendo. Sono vicino ad accettare che si tratta di un bug del compilatore.
Grazie. Ma perché non fallisce se aggiungo String (23) e copiamo di nuovo la stessa riga come: String (23); Stringa (23); ? – Wak
In realtà ero nel bel mezzo di chiarire che nella risposta. Vedi modifica. –
Grazie per questa risposta; mi ha aiutato a capire perché ho avuto uno strano "non posso invocare 'animateWithDuration' con un elenco di argomenti di tipo ..." errore. La soluzione è stata esattamente la stessa. – SonarJetLens