let x = User()?
y = x
z = y
Ссылка на «x» должна быть 2, это правильно?В Swift указатели класса всегда указывают на родителя?
y = nil
z
станет ли ноль, или же он продолжает оставаться User
?
let x = User()?
y = x
z = y
Ссылка на «x» должна быть 2, это правильно?В Swift указатели класса всегда указывают на родителя?
y = nil
z
станет ли ноль, или же он продолжает оставаться User
?
Ссылка на «x» должна быть 2, это правильно?
Да, вы проходите вокруг ссылок, и вы делали это дважды.
z
станет ли ноль, или же она по-прежнемуUser
?
Нет, z
не становится нулевым, поскольку z
содержит ссылку на User
. Когда значение y
равно нулю, счетчик ссылок падает до 1, поэтому он остается в живых.
z
не стать nil. Он поддерживает ссылку на объект (тот же) пользователя, который сохраняет объект в живых.
Дополнительные сведения о жизненном цикле объекта и сильных/слабых ссылках см. В разделе Automatic Reference Counting словаря Swift Programming Language.
Что такое 'User()?'? Почему это не просто 'User()'? – tktsubota