Сохранить объект верхнего уровня, загруженный из пера
У меня есть меню, которое используется некоторыми viewControllers. Чтобы избежать дублирования, я дал меню свой собственный файл пера. Я загружаю меню с этим фрагментом кода. Меню загружается из файла, но не сохраняется.
Если я установлю владельца, меню будет сохранено, но тогда я потеряю все другие выходы в моем viewController.
Как сохранить это меню в Swift?
override func viewDidLoad()
{
super.viewDidLoad()
var xibItems : NSArray?
NSBundle.mainBundle().loadNibNamed("Menu", owner: nil, topLevelObjects: &xibItems)
if let xibMenu = xibItems?.firstObject as? NSMenu
{
self.popupButton.menu = xibMenu
println(xibMenu) //ok
}
}
редактировать:
Присвоение меню локальной переменной (для сохранения строгой ссылки) не помогает. Но если я назначу локальную переменную и выведу ее на печать, то это сработает. Это не совсем удовлетворительно, потому что я не хочу заявления println. Избегать дополнительных локальных переменных тоже будет плюсом.
override func viewDidLoad()
{
super.viewDidLoad()
var xibItems : NSArray?
NSBundle.mainBundle().loadNibNamed("Menu", owner: nil, topLevelObjects: &xibItems)
if let xibMenu = xibItems?.firstObject as? NSMenu
{
self.popupButton.menu = xibMenu // popupButton is an IBOutlet
self.popupMenu = xibMenu //local variable
println(xibMenu) //ok
}
}