次のコードを考えると、サービスに接続していくつかのアイテムをフェッチするとします。アイテムが「処理」されている間、進行状況を表示するためにラベルを更新する必要があります。
問題は、操作がメイン スレッドをブロックし、UILabel がすべての項目を反復した後にのみ更新されることです。
毎回更新されるように、このコードを修正するにはどうすればよいですか?
AFJSONRequestOperation *operation =
[AFJSONRequestOperationJSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
datas = [JSON valueForKeyPath:@"data"];
for(int i = 0; i < [datas count]; i ++)
{
//do stuff with the item
NSMutableString *progressText = [[NSMutableString alloc]
initWithFormat:@"Done with %d out of %@ items", i, [datas count]];
self.progressLabel.text = progressText;
}
}];
[operation start]