我的应用程序是音乐播放器应用程序,我有一个名为nowplayingVC
的单例VC。
首先让我解释为什么单独的VC方法,基本上在我的nowplayingVC
我有从网络查询的专辑艺术等,我不希望每次都发生这种情况,如果我经常弹出/推动它nowplayingVC
。
这就是我能够实现单身人士的方式:
class NowPlayingController: UIViewController{
static let sharedInstance: NowPlayingController = {
let instance: NowPlayingController = UIStoryboard(name: "Music", bundle: nil).instantiateViewController(withIdentifier: "music") as! NowPlayingController
return instance
}()
}
所以每次我想推这个nowplayingVC
,我就去吧,
navigationController?.pushViewController(NowPlayingController.sharedInstance, animated: true)
但是这里是我被困的地方,我描述了这个nowplayingVC
,它的引用计数是1,由静态sharedInstance变量引起。我也在nowplayingVC
中使用定时器,这意味着必须调用deinit(),这是我使invalid()定时器无效的地方。
在什么时候我可以从内存中删除此
nowplayingVC
AppDelegate里面的某个地方可能在applicationWillTerminate {}里面? 还是会自动调用deinit()?我怎么能把它带回来 到0?
我只是想知道这种情况的最佳方法是什么,谢谢