1

開始時にユーザーの位置をチェックし、その場所の天気を取得するアプリがあります。主に風向と風速。

インターネット接続があることを確認するために通常のチェックを行いますが、接続はあるが非常に遅い場合、起動画面でアプリがフリーズすることがわかりました(起動時にチェックを行います)。

私はこれを行うクラスを持っています.これは起動時に呼び出され、その後ホーム画面がロードされます.見回すと、GCDは正しい方法のようですが、ホーム画面のラベルに表示される答えを得ることができますか?データの取得は終わりましたか?メインのトレッドは離れているか、そのクラスをバイパスしてメイン画面に到達しています。

ラベルの更新と再読み込みを支援するために、通知センターのようなものを使用する必要があるでしょうか?

考えやコードスニペットをありがとう。ヨルゲン

PS。古いiPadを快適に保つために、アプリをiOS 5.1に維持しようとしています。

4

1 に答える 1

0

GCD は正しい方法のようですが、データの取得が終了したときに、ホーム画面のラベルに表示される回答を取得できますか? メインのトレッドは離れているか、そのクラスをバイパスしてメイン画面に到達しています。ラベルの更新と再読み込みを支援するために、通知センターのようなものを使用する必要があるでしょうか?

はい、あなたはここで非常に良い軌道に乗っていると思います。ただし、2 つの問題は分けておきましょう。

  • バックグラウンド作業を行った後、まだ GCD で、インターフェイスを更新する必要があるため、メイン スレッドに戻ります。それは簡単で簡単です。

  • 通信に問題がある場合、通知は優れた解決策になる可能性があります。そのラベルを更新する必要があることをブロードキャストできます。正しいビュー コントローラーが存在し、リッスンしている場合は、その情報を取得します

    そうは言っても、通知よりも良い方法があるかもしれないので、アーキテクチャについて考える必要があります。メインスレッドに戻ったら、正しいView Controllerが存在するかどうかを知り、それと直接対話する方法がないのはなぜですか. 通知が悪い/間違っていると言っているのではありません! 私はこのソリューションを自分で使用しましたが、通知は、たとえば NSOperation から戻るための非常に標準的な方法です。少し考えてみてください。

于 2013-05-06T17:02:11.177 に答える