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_get_main_queue'를 사용하여'dispatch_async'를 사용하는 것이 더 일관성이 있습니다. – rmaddy