2011-02-08 16 views
5

ホームボタンではなくXcodeからアプリケーションを停止しようとすると、- (void)applicationWillTerminate:(UIApplication *)application{}- (void)applicationDidEnterBackground:(UIApplication *)application{}が呼び出されないという奇妙な問題が発生しました。Xcodeからアプリケーションが停止したときにapplicationWillTerminateが呼び出されない

+1

Xcodeはホームボタンではないため、この動作は理にかなっています。 – Moshe

+0

私はapplicationWillTerminateに到達したときにファイルアクションを実行する必要がある状況をシミュレートしようとしています。実行中のアプリケーションを停止すると、applicationWillTerminateは呼び出されません。実行中のアプリケーションが終了するためです。 – Ksinak

+0

@moshe:ありがとう。私はxcodeから実行中のアプリを閉じるとアプリケーション全体が終了するので、それ以上の呼び出しはないということを理解していると思います。 – Ksinak

答えて

8

Xcodeがではなく、 iOSデバイスのホームキーであるため、この動作が期待されます。

「ビルドと実行」をクリックすると、たとえば別のアプリをテストしているときに、最初のアプリを強制終了するように指示されます。そうすると、最初のアプリは決して開かないかのように閉じます。これは、アプリケーションのサンドボクシングの結果と思われます。

同様の注意点として、マルチタスク対応デバイスでアプリをテストしているときにホームキーを押すと、アプリはバックグラウンドモードで引き続き実行され、applicationWillTerminateはトリガーされません。ただし、デバイスはapplicationDidEnterBackgroundをトリガーする必要があります。

+0

洞察のおかげで!うん、私はマルチタスクで私のアプリで同じ問題に直面し、私はapplicationWillTerminateに加えてapplicationDidEnterBackgroundをオーバーライドしなければならなかった。これは私の疑問に答える。 – Ksinak

関連する問題