Ранее я использовал следующую одноплодную схему:Singleton шаблон в Swift 1.2
class Singleton {
class var sharedInstance : Singleton {
struct Static {
static let instance : Singleton = Singleton()
}
return Static.instance
}
}
Когда новый Xcode бета с Swift 1.2 была выпущена я хотел опробовать новые статические свойства и методы класса. Так что я пытался что-то похожее на это:
class Singleton {
static let sharedInstance : Singleton = Singleton()
}
Глядя на отладчике, используя это, кажется, как много вложенных экземпляров класса одноплодной создаются классом константы:
Но, глядя через распределения, кажется, что создается только один экземпляр. Я предполагаю, что это означает, что он работает правильно, но я не вижу того же поведения с первым шаблоном.
Второй, казалось, работал для меня – Ian
Если вы установили точку останова где-то после инициализации константы класса, разве не похоже, что есть несколько экземпляров класса в стеке? –
Я установил переменную в общий экземпляр, используя второй метод в одном контроллере представления, и после вызова 'Singleton.sharedInstance.foo' во втором контроллере представления он успешно вызвал значение singleton для этого свойства. – Ian