В 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.