3

SwiftARC 中,deinit当 anyUIViewController从 memory 中删除时调用,但如果 any 从 memory 中删除,则不会被调用UIView

例如

如果UIViewControllerdeinit工作得很好

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

但万一UIView上课deinit不工作

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

任何的想法 。

4

1 回答 1

6

父 ViewController 可以容纳你的 UIView。您必须将一个属性设置为 nil,该属性将您存储UIView在父UIViewController级中以释放 uiview。

或者覆盖removeFromSuperview()并将您的 deinit 代码放入其中。

于 2016-07-13T14:40:26.550 回答