私はこの質問が何度も聞かれたことを知っており、Appleからの回答としてこのリンクを取得しました:http: //developer.apple.com/library/ios/#qa/qa1561/
しかし、最近、私は以下のこのケースに遭遇しました。'exit(0)'を直接使用する以外に他のオプションは表示されません。
iPhoneのカメラやマイクからデジタルデータを収集できるアプリを持っています。次に、「保存して終了」というボタンをデザインしました。これは、私のアプリの非常に一般的なシナリオだからです。
プログラムでアプリを終了する機能がないと、愚かな「保存」ボタンしかありません。次に、ユーザーは2回クリックする必要があります(1. [保存]ボタン、次に2.[ホーム]ボタン)。同じ結果を得るには、これら2つのアクションを順番に実行します。
それから、おそらくこれが私の設計の欠陥であることに気づきました。したがって、私はそれをこのように変更しました。
[終了を保存]ボタンを削除し、代わりに、下部に[ホームボタンを使用して保存して終了]というメモを追加しました。ユーザーのアクションからの終了シグナルをキャッチして、事前にSAVEを実行しようとしました。
これにより、ユーザーはネイティブのHOMEボタンを使用して「保存して終了」を実行できます。
ただし、このソリューションは完全ではありません。
アプリがデータの保存に時間がかかりすぎる場合でも、ユーザーが[ホーム]ボタンを押した後、iOSがアプリを強制終了する可能性があります。そうすると、ユーザーは予告なしにデータを失う可能性があります。
プログラムで終了できる場合は、最初に「保存」を試みることができます。「SAVE」が失敗した場合、ユーザーに通知するか、必要なすべての修復作業を行うための十分な時間があります。
これは、拒否されることなくアプリで「exit(0)」を使用する正当な理由だと思いますか?