我对Objective-C不熟悉,目前我正在编写代码,该代码从服务器下载文件,然后对下载的文件进行一些操作。我对调度队列和调度组感到困惑。
所以我有一个名为dowanloadZip的函数,在此downloadZip函数中,我正在使用另一个名为startHttp的函数来触发请求,但是此函数是异步的,我需要等到完成块完成后才能继续检查是否文件已完成,对其进行处理等。基本上,我需要等待完成块完成,然后我才能继续执行其他处理。我的代码如下所示:
-(void)downloadZip:(NSString *url){
...
urlRequest = [reqeustMangaer urlStrig:url]
[requestManager startHttp:urlReuqest completionBlock:^(resposne){
//check response here
}]
}
有人告诉我使用调度队列,但是其他一些人则说使用调度组,然后我发现一些实际使用这两个代码。 我阅读的代码首先使用调度全局队列,然后在队列内部使用调度组enter。那么我应该先创建一个调度队列,然后在完成模块中输入该组吗?还是只使用调度组? (我希望它在后台线程上)。 我还想知道,如果需要在其他地方调用downloadZip函数,该怎么办?