Хотя ClassA
не имеет прямой ссылки на ClassC
. Если мы вставим ту же ссылку b
, что и ClassA
, в ClassC
, почему ClassC
не сохраняется, если он сохраняет эту ссылку в b
? Почему это сохраняется только в том случае, если мы создаем ссылку в ClassA
на ClassC
напрямую?
class ClassA {
var b: ClassB?
func someFunc() {
let b = ClassB()
self.b = b
let c = ClassC(b: b)
c.doSomething()
}
}
class ClassB {}
class ClassC {
private let b: ClassB
init(b: ClassB) {
self.b = b
}
func doSomething() {
print("doSomething")
}
deinit {
print("C deinit")
}
}
let a = ClassA()
a.someFunc()