35

Cocoa アプリケーションに終了を指示する良い方法を探しています。これは製品コードには使用されませんのでご安心ください。1 つのテストを実行し、デバッグ中にアプリケーションを閉じる簡単な方法を探しています。

アプリを閉じることがわかりましたexit(0);が、通常のアプリケーション終了手順をすべてバイパスするため、すべての手順をそのままにしておきたいと思います。

基本的に、ユーザーがメニューから「Quit」を押したかのように機能させたいのですが、テストが終了した後に自動的にそれが行われるようにしたいのです。

私のコードは現在次のようになっています。

#if (SUPERFANCY_TESTING_MODE)
    [self doSomething];
    exit(0); // <-- I need something better to go here
#endif
4

1 に答える 1

86

アプリが少なくとも一定の時間で強制終了されることはほぼ確実です。したがって、出口などに対する防御exit(0); 必要です。

ただし、NSApplication は-terminate:メソッドを実装します。

[NSApp terminate: nil];あなたがしたいことをするべきです。

-performSelector:afterDelay:イベント ループの次のパスの先頭で強制的に発生させるには、0.0 の遅延を指定してポストすることをお勧めします。

例:

[NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];
于 2009-11-02T02:37:08.007 に答える