gpt4 book ai didi

ios - Swift - Grand Central Dispatch 与 block /闭包

转载 作者:行者123 更新时间:2023-11-28 11:22:42 26 4
gpt4 key购买 nike

我正在尝试使用 Swift 编写 HTTP 请求,但我真的只看到人们以这种或那种方式(实际上不是那么多 GCD)在 iOS 上执行 HTTP 请求。

如果我想在 iOS 中发出 HTTP 请求,最好的方法是什么:使用 Grand Central Dispatch 或编写一些闭包 block ?此外,我在哪里可以找到一些很棒的东西例子。根据我在网上阅读的内容,我很难看出两者之间的优势。

目前,我有这段代码:

    let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT

dispatch_async(dispatch_get_global_queue(priority, 0), { ()->() in

self.activityIndicator.startAnimating()
self.authenticateUser()

dispatch_async(dispatch_get_main_queue(), {
self.activityIndicator.stopAnimating()
})
})

根据我在处理器的“调试 session ”选项卡中看到的内容,我可以看到它从线程 X 跳转到线程 Y(对于 authenticateUser)并返回到线程 X。这很好 - 这就是我想要的(我是当然)。

您可能知道的任何用 Swift 编写的 GCD 或 block /闭包的好示例也将非常方便。谢谢!

最佳答案

使用NSURLSession发出您的 HTTP 请求。使用 GCD在您的应用程序中实现并发(同时发生多项事情)。并使用 Closures为您的应用程序提供结构。正如您现在看到的,所有这些都可以同时使用。

顺便说一句,永远记住这一点:所有 UI 修改都必须在主线程中调用,在您的代码中,您在并发队列上调用此 self.activityIndi​​cator.startAnimating()

关于ios - Swift - Grand Central Dispatch 与 block /闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com