1
我需要在后台线程中解析json。此解析器还需要使用委托方法更新我的进度栏,但出于某种原因,我的进度条仅更新并且进程结束。我的代码如下:IOS - 从异步调用更新进度栏
-(void)downloadStuff
{
// some other code
downloaderController.delegate = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
[downloaderController parseJson];
});
}
过程中的方法parseJson调用委托几次更新进度条是这样的:
-(void)updateProgressBar
{
//Is anyone listening
if([_delegate respondsToSelector:@selector(updateProgressBar)])
{
[_delegate updateProgressBar];
}
}
而且我updateProgressBar如下:
(void)updateProgressBar
{
_progressBar.progress =+ 0.05f;
}
任何人都可以解释我在这里做错了什么?
你能举一个例子吗?我不知道你在说什么方法。 –
完美。像魅力一样工作。谢谢! –
使用GCD的用户'performSelectorOnMainThread'有点奇怪。将'dispatch_async'与'dispatch_get_main_queue'一起使用会更加一致。 – rmaddy