2016-06-30 2 views
1

Я пытаюсь запустить сохранение моего CoreData в закрытом окне как свое единственное приложение для окна.windowShouldClose сообщить о неразрешенном идентификаторе

У меня есть следующий код в моем viewDidLoad и viewDidAppear

override func viewDidLoad() { 
    super.viewDidLoad() 
    if windowShouldClose(self) { 
     saveValues() 
    } 

} 

override func viewDidAppear() { 
    super.viewDidAppear() 
    self.view.window?.delegate = self 
} 

однако им все еще получаю следующее сообщение об ошибке

Use of unresolved identifier 'windowShouldClose' 

Любые советы относительно того, почему я все еще получаю эту ошибку после объявление делегата окна как самого себя?

+0

Является ли большой «L» в окне «WindowShouldCLose» опечаткой здесь или в вашем коде? – Eiko

+0

Просто опечатка, Моя плохо! – chrono

+0

** Никогда ** вызовите методы делегата, включая 'will',' did' и 'should' самостоятельно. Они вызываются операционной системой. Внесите метод делегата и разместите там свой код. – vadian

ответ

0

Набор делегат в viewDidLoad

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.view.window?.delegate = self 
} 

и реализовать метод делегата

func windowWillClose(notification: NSNotification) { 
    saveValues() 
} 

windowShouldClose отличается. Он запрашивает разрешение на закрытие окна и ожидает логическое возвращаемое значение.

+0

Это сделало трюк. Мне пришлось поместить self.view.window? .delegate = self в viewDidAppear(), но как только я сделал это, все срабатывало, как ожидалось! – chrono

Смежные вопросы