У меня есть NSViewController
, который имеет переменную класса следующим образом:
class ServerAdminViewController: NSViewController, NSTextFieldDelegate, MyTableViewDelegate {
var myClass = MyClass()
func showAdmin(window: NSWindow, myClass: MyClass) {
self.myClass = myClass
window.makeKeyAndOrderFront(self)
NSApp.activate(ignoringOtherApps: true)
}
Экземпляр этого класса создается в инициализации приложения. Позже, когда пользователь нажимает на элемент меню, я хочу показать окно и использовать это значение в качестве одиночного для приложения, в то время как это окно открыто, также имея возможность изменять myClass
. Однако строка, в которой объявлена переменная экземпляра, выполняется несколько раз и после назначения self.myClass = myClass
сбрасывает объект (это приложение меню, которое открывает окно).
Tried Несколько вещей, напр. удаление конструктора без параметров из myClass
, объявление этой переменной закрытой и с "!", добавление методов инициализации к ViewController
(без успеха) и некоторых других неудачных попыток.
Вопрос Как сделать myClass
синглтоном и поделиться им в приложении (т.е. сделать его доступным для этого окна) без его повторной инициализации?