Я читаю видеофайл и обрабатываю его. Код для него основан на коде в this вопрос.Обновление пользовательского интерфейса при чтении видеофайла
AVURLAsset * asset = [AVURLAsset URLAssetWithURL:url options:nil];
[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] completionHandler:
^{
dispatch_async(dispatch_get_main_queue(),
^{
AVAssetTrack * videoTrack = nil;
NSArray * tracks = [asset tracksWithMediaType:AVMediaTypeVideo];
if ([tracks count] == 1)
{
//some code here
[movieReader startReading];
while ([movieReader status] == AVAssetReaderStatusReading)
{
// reading the video code here
}
}
});
});
Мне нужно обновить интерфейс при обработке каждого кадра, указывающего ход обработки кадров. Я вставляю кнопку в пользовательский интерфейс внутри цикла while, однако пользовательский интерфейс обновляется только после завершения всей обработки видео. Infact, любое обновление пользовательского интерфейса, выполняемое в блоке обработчика завершения, происходит только после всей обработки. Любые предложения о том, как это сделать?