/ / swift deinit не працює, коли UIView видалено з пам'яті - swift, uiview, uiviewcontroller, deinit

Швидкий метод deinit не працює, коли UIView видаляється з пам'яті - swift, uiview, uiviewcontroller, deinit

В Swift ARC дзвонить deinit коли-небудь UIViewController видаляє з пам'яті, але не викликається, якщо таке UIView видаляється з пам'яті.

наприклад

У випадку UIViewController Клас deinit працює відмінно

class MusicPlayerUIViewController: UIViewController,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}

але у випадку UIView Клас deinit не працює

class MusicPlayerView: UIView,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}

будь-яка ідея.

Відповіді:

3 для відповіді № 1

Батько ViewController може утримувати вас UIView. Потрібно встановити значення nil, яке зберігає вас UIView у батьківському UIViewController для випуску uiview.

Або перекрити removeFromSuperview() і розмістіть в ньому код deinit.