2016-06-30 6 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

ここで、またはあなたのコードで '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

関連する問題