2011-12-06 6 views
0

次のシナリオを検討してください。オーディオストリーミング、NSTimer、およびJSONシナリオの解析

オーディオストリームを再生するアプリです。次に、アーティストと曲のタイトル、現在の曲のアルバムアート、プロデューサーの名前、小さな説明と写真が並んでいるNow Playingビューがあります。これらはすべてJSONファイルから来ています。

JSONファイルが実際に変更されたときに知るためには、JSONを変更し、最後のタイムスタンプ/コードが含まれている余分な.crcとファイルがあります。 .crcの内容が変更されたら、JSONを更新する時間です。

だから私はNSTimerは、すべて10秒を発射あり、将来的に.crcとファイルのデータを返すNSURLConnectionを開きます。 connectionDidFinishでは、コードが前のコードから変更されているかどうかを確認し、条件が真であればJSONをロードして最終的にデータを解析します。 NSURLConnectionと、この10秒のタイマーが一定のオーディオストリームの再生があることを念頭に置いた?アプリのために多すぎると、ここ

私の質問です。もちろん、アプリがバックグラウンドに入ると、タイマーは停止します。そして、アプリケーションがフォアグラウンドに入ると、私はJSONをロードして、ビューを更新して、再びタイマーを開始します。

はまた、現在再生中のビューは、ルートビューコントローラから(一度だけ作成)self.nowplayingviewのIVARに割り当てられ、self.nowplayingviewはスタックにプッシュされます。こうすることで、JSONに変更があったときに、Now Playingビューをルートビューから更新できます。

いつでも再生中のビューを作成してプッシュする必要があると思いますか?

ありがとうございます。

+0

JSONを更新するためのコードがまだバックグラウンドで実行されるようにあなたは、私が思うNSTimerよりNSThreadを使用したほうが良いでしょう。 –

+0

@ RichardJ.RossIII - ありがとう、私はNSThreadを試して、それがどうなるか見てみましょう。 – Dimitris

答えて

0

既存の再生中のビューを新しい情報で変更するだけではどうですか。また、これはおそらくバックグラウンドスレッド(上記のRichard Rossが述べたように)で行われるか、または呼び出しが非同期に行われてapp/interfaceが遅く応答しなくなることがないようにする必要があります。

+0

.crcとjsonファイルの呼び出しは両方とも非同期です。 NSTimerの代わりにNSThreadに変更してみると、どうなるか見ていきます。ありがとう。 – Dimitris

関連する問題