Ho un'automobile e un autista. Si riferiscono reciprocamente. In auto init() creo un driver e lo assegno al membro del driver. Il membro del conducente ha un metodo didSet che dovrebbe impostare l'auto del conducente, quindi collegarsi reciprocamente tra loro.In Swift, didSet non si attiva se invocato da init()
class GmDriver {
var car: GmCar! = nil
}
class GmCar {
var driver: GmDriver {
didSet {
driver.car = self
}
}
init() {
driver = GmDriver()
}
}
let myCar = GmCar()
println(myCar.driver.car) // nil
Tuttavia, il didSet non si accende mai. Perché?
Gli osservatori di proprietà non vengono chiamati durante init, consultare http://stackoverflow.com/questions/25230780/is-it-possible-to-allow-didset-to-be-called-during-initialization-in- swift –
Grazie! Manca sia la documentazione di Apple che la ricerca dello stackoverflow dovrebbe davvero guadagnarmi meno la reputazione ... – uaknight
@ Martinin per favore aggiungilo come risposta, forse? –