2016-06-30 84 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 
} 

但是IM仍然收到以下錯誤

Use of unresolved identifier 'windowShouldClose' 

任何意見,爲什麼我仍然收到此錯誤後聲明窗口委託爲自己?

+0

'windowShouldCLose'中的'L'是否在這裏或代碼中出現錯字? – 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