是否有可能使用ViewControllers的单身人士?
问题描述:
我试图用单例,但没有运气得到相同的实例是否有可能使用ViewControllers的单身人士?
我用这种方式...
class RCHDownloadTVCC: UITableViewController {
private static let sharedInstance = RCHDownloadTVCC()
static func defaultInstance() -> RCHDownloadTVCC {
return sharedInstance
}
......}
答
视图控制器不应该是单身人士。绝对不会。
视图控制器根据需要创建并在不再需要时销毁。单身人士是在第一次需要的时候创建的,并且永远不会被破坏。例如,使viewcontroller成为一个单例将停止viewDidLoad正常工作。除此之外,你永远不会知道相同的视图控制器将不需要两次。
答
试试这个
class RCHDownloadTVCC: UITableViewController {
static let sharedInstance = RCHDownloadTVCC()
......}
得到它在其他一些类别:
let rchdownloadSingletone = RCHDownloadTVCC.sharedInstance
Upd: Ofc您需要确保您只通过sharedInstance
属性初始化RCHDownloadTVCC
类。任何其他方式来初始化它(例如,从故事板)将返回新的实例。我认为将视图控制器定义为单例是不好的样式编码
+0
我可以看到发生了什么现在我正在使用故事板,所以它肯定会是一个不同的实例,感谢提醒我 – Raffi
我正在做一个下载管理器,如果它不是一个好的方法来使用单身,那么我将如何添加一个新的下载到我的视图控制器没有访问它? – Raffi
@Raffi在共享单个数据模型对象中执行下载。当你需要显示下载时 - 将它们组成新的视图控制器实例。学习MVC模式。 –
好的!谢了哥们。 – Raffi