是否可以在ViewControllers中使用单例?

时间:2016-05-30 11:58:45

标签: ios swift2 singleton

我试图使用单身,但没有运气获得相同的实例

我用这种方式......

class RCHDownloadTVCC: UITableViewController {
private static let sharedInstance = RCHDownloadTVCC()

static func defaultInstance() -> RCHDownloadTVCC {
return sharedInstance
}
......}

2 个答案:

答案 0 :(得分:1)

视图控制器永远不应该是单例。绝对没有。

视图控制器根据需要创建,并在不再需要时销毁。单身人士是在第一次需要时创造出来的,永远不会被摧毁。

使viewcontroller成为单例会阻止viewDidLoad正常工作,例如。除此之外,你永远不会知道两次不需要相同的视图控制器。

答案 1 :(得分:0)

试试这个

class RCHDownloadTVCC: UITableViewController {
static let sharedInstance = RCHDownloadTVCC()
......}

在其他课程中获取它:

let rchdownloadSingletone = RCHDownloadTVCC.sharedInstance

更新: Ofc您需要确保只按RCHDownloadTVCC属性初始化sharedInstance类。初始化它的任何其他方式(例如,从故事板)将返回新实例。而且我认为将视图控制器定义为单例是坏的样式编码