【问题标题】:should i dispatch web service call to background on ios development我应该向 ios 开发后台发送 Web 服务调用吗
【发布时间】:2026-02-05 02:45:01
【问题描述】:

在我的应用程序中,我需要调用 Web 服务来获取数据(http get)。我是一个新的 ios 开发人员,我想知道我是否应该将 http get 调用发送到后台,并将 tableview 重新加载数据带到前台,如下面的代码?谢谢大家!

-(void)updateDataInBackground {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^(void) {

        // hard work/updating here

        // when finished ...
        [self reloadTable];
    });
}

-(void)reloadTable {
       dispatch_async(dispatch_get_main_queue(), ^(void) {
            [myTableView reloadData];
        }); 
}

【问题讨论】:

  • 为什么你需要在后台运行Web服务,当应用程序来自后台时你不能这样做吗?
  • 该代码对我来说看起来不错。顺便说一句,它是“前景”,而不是“前景”;-)
  • @nanshi 请为此目的保留您的问题!很高兴链接有所帮助。
  • @nanshi -- 你可能喜欢 AFNetworking 或类似的工具包。

标签: ios ios5 ios6 dispatch-async


【解决方案1】:

要获得完美和完整的结果,请使用以下代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        @autoreleasepool {
           //your webservice operations here
        }

    });

【讨论】:

  • 它工作正常,但有没有其他方法可以在后台以更快的速度运行 Web 服务。
  • 由于应用商店中的大多数应用都使用 AFNetworking 库来调用 Web 服务。您也可以在使用后比较您的速度。您可以从以下网址下载 AFNetworking。 github.com/AFNetworking/AFNetworking