0

私はこの質問が何度も聞かれたことを知っており、Appleからの回答としてこのリンクを取得しました:http: //developer.apple.com/library/ios/#qa/qa1561/

しかし、最近、私は以下のこのケースに遭遇しました。'exit(0)'を直接使用する以外に他のオプションは表示されません。

iPhoneのカメラやマイクからデジタルデータを収集できるアプリを持っています。次に、「保存して終了」というボタンをデザインしました。これは、私のアプリの非常に一般的なシナリオだからです。

プログラムでアプリを終了する機能がないと、愚かな「保存」ボタンしかありません。次に、ユーザーは2回クリックする必要があります(1. [保存]ボタン、次に2.[ホーム]ボタン)。同じ結果を得るには、これら2つのアクションを順番に実行します。

それから、おそらくこれが私の設計の欠陥であることに気づきました。したがって、私はそれをこのように変更しました。

[終了を保存]ボタンを削除し、代わりに、下部に[ホームボタンを使用して保存して終了]というメモを追加しました。ユーザーのアクションからの終了シグナルをキャッチして、事前にSAVEを実行しようとしました。

これにより、ユーザーはネイティブのHOMEボタンを使用して「保存して終了」を実行できます。

ただし、このソリューションは完全ではありません。

アプリがデータの保存に時間がかかりすぎる場合でも、ユーザーが[ホーム]ボタンを押した後、iOSがアプリを強制終了する可能性があります。そうすると、ユーザーは予告なしにデータを失う可能性があります。

プログラムで終了できる場合は、最初に「保存」を試みることができます。「SAVE」が失敗した場合、ユーザーに通知するか、必要なすべての修復作業を行うための十分な時間があります。

これは、拒否されることなくアプリで「exit(0)」を使用する正当な理由だと思いますか?

4

2 に答える 2

2

いいえ、Appleが「保存して終了」ボタンを使用できるようになるかどうかは非常に疑わしいです。これはプラットフォームの規則に完全に反し、AppleのHIGと直接矛盾します。

どのような状況で、iOSがアプリにクリーンアップを提供する時間内に保存できないデータがあると思いますか?これを実際に測定して、問題があることがわかりましたか?

于 2011-07-01T16:17:40.280 に答える
1

いつも自動で貯金してみませんか?一時ディレクトリに保存して、終了時にファイル移動操作を実行できます。これはおそらく、失敗することがある現在の保存操作よりもはるかに高速です。

于 2011-07-01T16:07:36.540 に答える