Скажем, у меня есть класс (скажем, «MyClass») типа UIView
, где я объявил свойство типа (nonatomic, strong)
для делегата класса, чтобы обрабатывать события, которые будут запускаться классом.
Приложение поддерживает ARC, и оно работает просто отлично, когда я нашел кое-что интересное, я поместил Dealloc в один из моих контроллеров представления (скажем, TempViewController), где я устанавливаю делегата от MyClass
до self
. Всякий раз, когда я выталкиваю из TempViewController, он должен вызывать свой метод Dealloc, но это не так. Я не знаю почему, но это не так, я ставлю сделки для других классов, и все они вызываются.
Затем я обнаружил, что он не вызывает TempViewController, потому что я установил делегата MyClass. Я тестирую то же самое и с другими классами, и тогда он перестает вызывать Dealloc.
Позже я меняю, делегирую свойство assign
вместо strong
, хотя оно снова работает нормально.
Еще одно решение, которое я нашел, заключается в том, что, установив nil
в viewDidDisappear
для делегата MyClass (как мы сделали для MKMapView
или UIWebView
), он вызовет Dealloc для того же класса TempViewController.
Что вызывает проблему? Любая помощь, предложение?