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