- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
私はデリゲートコールにこのコードを持っています:
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[webUrls objectAtIndex:indexPath.row]];
CMTime timeduration = playerItem.duration;
float seconds = CMTimeGetSeconds(timeduration);
NSString *duration = [NSString stringWithFormat:@"%f", seconds];
dispatch_async( dispatch_get_main_queue(), ^{
UITableViewCell *updatecell = [tblView cellForRowAtIndexPath:indexPath];
updatecell.detailTextLabel.text = duration;
[updatecell setNeedsLayout];
});
});
各セルは、バックグラウンドでゆっくりとセルのにロードさseconds
れupdatecell.detailTextLabel.text
ます。問題は、スクロールした後、約3つまたは4つのセルがロードされた後、残りはdetailTextLabelに0が表示され、ロードされないことです。
これがなぜであるかについて何か考えはありますか?スレッドを正しく実行していませんか?