在 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()
}
}
任何想法 。
最佳答案
父 ViewController 可以容纳你的 UIView。您必须将一个属性设置为 nil,该属性将您的 UIView
存储在父 UIViewController
中以用于发布 uiview。
或者覆盖 removeFromSuperview()
并将您的 deinit 代码放入其中。
关于从内存中删除 UIView 时,swift deinit 方法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38354162/