0

私は起動時にいくつかのリモートJSONをロードするアプリケーションで作業しています。アプリケーションは、無効な状態を防ぎ、人為的エラーの可能性を検出するために、受信データに対して特定のテストを実行するようにプログラムされています。ただし、GUIレベルでこのような状況をどのように処理するかはわかりません。最初のアイデアは、「予期しないサーバーエラーが発生しました。この問題の解決に取り組んでいます。しばらくしてから、もう一度お試しください」と表示することでした。ユーザーが「OK」または「終了」ボタンを押したときにアプリケーションを終了するためのポップアップ。

Appleは、コード内からアプリケーションを終了することを明らかに推奨していません:https ://developer.apple.com/library/ios/#qa/qa2008/qa1561.html

この状況に対処するための良い選択肢はありますか?

更新:誤解を招く可能性があるため、上記のエラーメッセージを更新しました。

4

2 に答える 2

1

起動時に優雅であることは難しいです。アプリを実行する準備ができている間は、UI をモーダルに表示することをお勧めします。私はこの SO の質問に答えて、素敵なトランジション効果を含む、UI を実行するためのクリーンな方法を示しています。

終了について: アプリは決して自己終了してはなりません (copyright Arnold Schwartzenegger circa 2003)。モーダルで実行する必要がある何かを実行できない場合のアプリの正しい動作は、ユーザーに警告し、再試行するオプションを提供することです。ユーザーが再試行したくない場合は、電話機にハードウェア ホーム ボタンがあります。

于 2012-08-24T16:04:34.743 に答える
1

同様の問題が発生しました。サーバーへの接続を確立できなければ、私のアプリは役に立ちませんでした。

これには 2 つの方法があります。

  1. プレース ホルダー テキスト。これは、json 配列を取得できるか、少なくともアラートをポップするためのバック ドロップを許可するまで、位置を保持できます。

  2. すべての操作を無効にしてビューを読み込み、小さなメッセージ ボックスに「接続中...」と表示されます。

基本的に、最初に応答したストーリーボード フレームを取得し、ユーザーが触れることができるものをすべて無効にしました。ボタンを押してアバウト画面に移動するなどの静的な操作を許可しました。

ただし、あまり自分を責めないでください。接続がまったくない場合、ユーザーのアプリはどれも適切に機能しません。この状態では、GUI の観点からは、主にダメージ コントロールとユーザー エクスペリエンスの保護に関するものだと思います。

于 2012-08-24T15:35:49.287 に答える