在Swift
当任何deinit
从内存中删除时,ARC正在调用UIViewController
,但如果从内存中删除任何UIView
,则不会调用它。
例如
如果UIViewController
班级deinit
效果很好
class MusicPlayerUIViewController: UIViewController,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}
但如果UIView
班级deinit
无法正常工作
class MusicPlayerView: UIView,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}
任何想法。
答案 0 :(得分:3)
父ViewController可以为您提供UIView。您必须将属性设置为nil,将UIView
存储在父UIViewController
中以便发布uiview。
或覆盖removeFromSuperview()
并将您的deinit代码放入其中。