convenience init(red:Int,green:Int,blue:Int,alpha:CGFloat) {
var red: CGFloat = CGFloat(red)/255.0
var green: CGFloat = CGFloat(green)/255.0
var blue: CGFloat = CGFloat(blue)/255.0
self.init(red:red, green:green, blue:blue, alpha:alpha)
}
Ho scritto il codice sopra per dare un modo più comodo di dichiarare il mio uicolore personalizzato. Ma in qualche modo, si blocca la mia app chiamando se stessa fino allo stack overflow. Cosa c'è di sbagliato qui?UIColor estensione convenienza init non funziona
Inoltre, ho appena realizzato che non sto chiamando esplicitamente questa funzione di init. Ma piuttosto stavo chiamando UIColor.whiteColor()
quando si verifica questo errore. Ovviamente, se richiamo esplicitamente questa funzione, l'errore si verifica ancora!
Il trucco qui è che l'init di convenienza deve avere parametri con nomi diversi per l'init UIColor. –
Dopo un po 'di tentativi, penso che Robert Wagstaff abbia dato la giusta spiegazione. Non penso che Swift consenta il sovraccarico di diversi tipi di parametri uguali. Mi chiedo se è stato fatto deliberatamente o sarà permesso in futuro – donkey
Mi aspettavo delle buone risposte su molte delle mie domande se questo ti infastidisce del tutto. – donkey