У меня есть несколько классов, которые создают график с «обратными указателями». Я попытался сделать обратные указатели unowned
(они будут создавать циклы в противном случае) и инициализировать их в моем init()
, но это создает проблемы с ссылками self
. Как я могу обойти это?Как инициализировать двунаправленный граф в Swift?
class Parent {
var child1:Child
var child2:Child
unowned var myOwner:Thing
init(myOwner:Thing) {
child1 = Child(parent: self) // Compiler errors here
child2 = Child(parent: self) // and here
self.myOwner = myOwner
}
}
class Child {
unowned var parent:Parent
init(parent:Parent) {
self.parent = parent
}
}
Ошибки я получаю
'self' used before all all stored properties are initialized
ленивый FTW. Работал как шарм. –