Одиночка — это порождающий паттерн, который гарантирует существование только одного объекта определённого класса, а также позволяет достучаться до этого объекта из любого места программы.
Одиночка имеет такие же преимущества и недостатки, что и глобальные переменные. Его невероятно удобно использовать, но он нарушает модульность вашего кода.
Singleton — это такой объект, который существует в системе только в единственном экземпляре. Очень часто используется для хранения каких — то глобальных переменных, например настроек приложения. Написание кода для создания подобного объекта следующее:
proSwift.ru class SingletonObject { var someProperty: String = «» class var singleton: SingletonObject { struct ForStatic { static var onceToken: dispatch_once_t = 0 static var singletonObject: SingletonObject? = nil } dispatch_once(&ForStatic.onceToken) { ForStatic.singletonObject = SingletonObject() } return ForStatic.singletonObject! } }