Iphone アプリの起動時に、サーバーからデータを受信するためにバックグラウンド スレッドを開始します。ここで、ユーザーはさまざまなビューをナビゲートできます。user の現在のビューに関係なく、サーバーからの応答があるときにアラートを表示する必要があります。これはどのように行うことができますか?データの受信に関するすべての見解を通知する必要があると思いますか? お知らせ下さい....
よろしく
リズワン
いいえ、connectionDidReceiveResponse などのメソッドがあり、バックグラウンド スレッドがデータを受信したときに呼び出されます。そのメソッドでこのアラートを表示すると、データが受信されるとすぐに表示されます。
appDelegate にあるはずの何かのように聞こえます。
アラート ビューは、ビューの階層に関係なく、他のビューの上に表示されます。したがって、基本的には、応答を処理し、任意のビューの上に表示される uialertview を表示する必要があります。それに応じて、アラート ビューでアクションを処理します。すべてのビューがこのメッセージを受け取る必要はありません。アプリケーションの存続期間を通じて永続的なメイン ビュー コントローラー/オブジェクトだけで十分です。
以下のように、connectionDidFinishLoading デリゲート メソッドにアラート ビューを追加するだけで十分です。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
UIAlertView *alertBox=[[UIAlertView alloc]initWithTitle:@"Got response" message:@"Loading completed." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertBox show];
[alertBox release];
}
アラートビューが一番上に来ます(ローカル通知のように機能します)。
ただし、Web サービス呼び出しを行ったクラスのインスタンスと NSUrlConnection オブジェクトが、接続の読み込みが完了するまで存続することを確認する必要があります。(リリースまたは割り当て解除されていない)