Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以将singleton与ViewController一起使用?_Ios_Swift2_Singleton - Fatal编程技术网

Ios 是否可以将singleton与ViewController一起使用?

Ios 是否可以将singleton与ViewController一起使用?,ios,swift2,singleton,Ios,Swift2,Singleton,我试图使用singleton,但没有得到相同的实例 我是这样用的 class RCHDownloadTVCC: UITableViewController { private static let sharedInstance = RCHDownloadTVCC() static func defaultInstance() -> RCHDownloadTVCC { return sharedInstance } ......} 试试这个 class RCHDownloadTVCC:

我试图使用singleton,但没有得到相同的实例

我是这样用的

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

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

class RCHDownloadTVCC: UITableViewController {
static let sharedInstance = RCHDownloadTVCC()
......}
在其他课程中学习:

let rchdownloadSingletone = RCHDownloadTVCC.sharedInstance

Upd:Ofc您需要确保仅通过
sharedInstance
属性初始化
RCHDownloadTVCC
类。任何其他初始化它的方法(例如,从故事板)都将返回新实例。我认为将视图控制器定义为单例是糟糕的编码风格

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

视图控制器根据需要创建,不再需要时销毁。单件是在第一次需要的时候创建的,并且从未被销毁


例如,将viewcontroller设置为单例将阻止viewDidLoad正常工作。除此之外,您永远不知道不需要使用同一个视图控制器两次

我正在制作一个下载管理器,如果这不是使用singleton的好方法,那么如何在没有访问权限的情况下将新下载添加到我的view controller中?@Raffi在共享单一数据模型对象中执行下载。当您需要显示下载内容时,请在新的视图控制器实例中编写下载内容。学习MVC模式。我可以看到现在发生了什么,我正在使用故事板,所以它肯定会是一个不同的实例,谢谢你提醒我