2017-09-21 7 views
-1

エラーの場合にアラートを正しく表示するのに問題があります。エラーを表示するためのベストプラクティス

私の考えは:私はバックエンドから完成ブロックでデータをダウンロードするたびに、エラーが発生したら警告を表示します。

query?.findObjectsInBackground(block: { (objects, error) -> Void in 
     if error != nil { 
      createAlert(error) 
      return 

     } else if let objects = objects { 
} 

私は同時にViewControllerに複数の電話を受けたので、自分自身が、例えばと言っ同時に提示する以上の2または3アラートを持つ見つけることが起こるかもしれません"No Connection to the Internet"。 警告は常に更新され、UIの痛みです。

この問題を解決するにはどうすればよいですか?

私のソリューションの考え方は、すべてをシングルトンパターンに入れ、現在他のアラートが表示されていないことを確認することです。

もっと良い方法がありますか?

+0

'createAlert'を表示してください。 – matt

答えて

1

代わりにシングルトンパターンを使用して、あなたはアラートを作成するためのクラスでオプションプロパティvar noConnectivityAlert)現在責任を持つことを好むかもしれません。
createAlert()メソッドの代わりにinformUserAboutConnectivity()メソッドがあります。

インターネット接続が復帰してから再び消えると、App Storeの一部のアプリケーションで再び警告が表示されます。 この場合、インターネット接続が復活したら、直接noConnectivityAlert = nilを設定すると、接続が失われたときに、物事がうまく処理されるようになります(新しい警告が作成されて表示されます)。

ところで、iOS SDKでは、シングルトンは頻繁には使用されません。ほとんどの場合、クラスのデフォルトおよび最も一般的な使用事例(UserDefaultsと考える)、または(もちろん)共有マネージャ/プロバイダを提供するために使用されます。

+0

「接続に失敗しました」以上のエラーがあるため - これは使用できません。 – JVS

+0

<= 4種類のアラートがある場合は、引き続きプロパティを使用できます(エラーカテゴリごとに1つずつ)。同時に表示するアラートタイプがたくさんある場合は、** 2つのタイプのエラーが同時に発生した場合に「接続とデータベースのエラーを表示する」などのエラーメッセージをグループ化することができます。また、デザインに関してアラートに関する[Appleの提案](https://developer.apple.com/ios/human-interface-guidelines/views/alerts/)もご覧ください。 ***アラートを最小化** [...]各アラートが重要な情報と有用な選択肢を提供するようにします。 – JMM

+0

この点は、混乱を最小限に抑え、ユーザーに流暢にさせることです。その点では、おそらくアラートタイプのおおよその数を質問に記載し、詳細を通知する必要があります(アラートは同時に、または数秒の間隔で起動できます)。あなたの質問は、ユーザーエクスペリエンスとデザイン面でも見られる必要があります。 – JMM

関連する問題