我有这个单例类,我需要知道如何从不同的视图控制器调用projects
变量,而不必编写长名称,例如:ProjectsManager.sharedInstance.projects
。
我不知道是否存在另一种方式来做到这一点。
class ProjectsManager: NSObject {
static let sharedInstance = ProjectsManager()
var projects = [Project]()
//..
}
最佳答案
遵循swift 3命名约定,您可以用sharedInstance
替换shared
。这可以在UserDefaults.standard
、NotificationCenter.default
、UIApplication.shared
等中看到。
此外,在视图控制器中,您可以简单地将属性集声明给该单例。
例如:
class ViewController: UIViewController {
private var projectsManager = ProjectsManager.shared
func doSomething() {
let projects = projectsManager.projects
}
// ...
}
这两种方法都可以减少每次使用singleton时需要键入的内容的长度。