Исходящий код, я попытался создать свойство объекта, присваивающего функции функции. И после объекта init я попытался назначить его нолю. Но объект не освобождался (потому что deinit никогда не вызывал).ARC in Swift как разрешить сильный ссылочный цикл при назначении свойства как функции
Я считаю, что проблема является сильным справочным циклом между свойством и объектом владельца. Если на самом деле существует сильный ссылочный цикл, как решить эту проблему при назначении свойства непосредственно с помощью функции?
class MyClass {
var aProperty: (() ->())?
init() {
// problem when assign property as a method
self.aProperty = aMethod
}
func aMethod() {
print("method!!!")
}
deinit {
print("MyClass is being deinitialized")
}
}
var instance: MyClass? = MyClass()
instance?.aProperty?()
instance = nil
Помимо данных ответов: вы должны сделать aProperty частным. – Darko