一个接一个地执行操作

Executing operations one after the other

我正在为某事而苦苦挣扎,我想问问你是否可以为我指明正确的方向。

我有四个任务要完成,-一个接一个。

  1. 从网络获取 html-代码
  2. 解析此代码并保存到核心数据存储
  3. 使用此数据并批量保存到日历
  4. 将解析后的数据上传到我自己的网络服务器。

我已经为此编写了所有代码并且它执行得很好。然而,有时它会遇到一些困难,因为一些代码在另一个代码完成之前执行。

示例:

func startProcess () {

    fetchHTMLFromWeb()

    parseHTML()

    saveToCalendar()

    //Sometimes uploadToWeb() starts before saveToCalendar() is finished
    uploadToWeb()

}

我曾尝试阅读 GCD,但这是一个相当复杂的主题,我发现很难掌握它。

你能推荐关于这个主题的任何好的读物吗?

非常感谢!

您可以使用 GCD 来执行后台队列中的所有内容。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  self.startProcess();
});

这样,startProcess 将在后台启动 queue/thread。所以你可以

fetchHtmlFromWeb方法中,当获取结束时调用parseHtml()。 希望对你有帮助。