私は2つのビュー "A"を持っています.1つのコードを検証するためにWebサービスを起動するボタンがあり、検証が成功すると、ビュー "B"に対するセグを実行します。ビューBでuiprogressview更新の問題
は、私はこの
- (bool) viewDidUpload
dispatch_async(kBgQueue, ^{
[self processContacts];
[self sendPost];
});
-(void) processContacts
//Process contact address
-(void) sendPost
//Process web services call
//If web service call is OK, call [self updateBar]
[self performSelectorOnMainThread:@selector(updateBar)
withObject:nil waitUntilDone:YES];
は、更新した:私はこの問題は、実行することである:、次いでsendPost方法はupdateBar呼び出しがperformSelectorOnMainThreadを用いて行った、バックグラウンドでsendPostとprocessContactsを送信するGDCを実装しましたこのメソッドでは入力されず、バーを更新せずに終了します。 sendPostとprocessContactsはバックグラウンドで実行されるようになりましたが、有効な接続が完了するたびにメインでupdateBarを実行する方法がわからず、バックグラウンドに戻り、残りの接続をやり直します。
感謝
私はGDCを実装してバックグラウンドの接続方法を送信していますが、たとえば、100個の接続が完了していて、メインのバーを全員に更新している場合は、どのように行うのか分かりません。ありがとう – roof
私はあなたがここで何を求めているのか分かりませんか?開始時に接続数を知っている場合は、その数を使ってプログレスバーがいっぱいになるまでの残り時間を見積もります。その後、各接続が完了したら、メインスレッドを呼び出してプログレスバーを更新します(カウンタをインクリメントして進行状況を追跡します)。 –