首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C协程

Objective-C协程
EN

Stack Overflow用户
提问于 2010-08-27 09:56:34
回答 2查看 1.9K关注 0票数 3

Objective-C -我怎样才能创建一个objective-c协程?当我有一个通过按钮调用的IBAction时,它会冻结应用程序,直到IBAction完成检索数据(从网站)。我如何让它作为主应用程序的协程运行?

谢谢,克里斯蒂安·斯图尔特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-27 10:15:12

协程是一种特定的实现技术。你想做的是在不阻塞用户界面的情况下在后台工作。

在iOS和Mac上,有两种主要的技术可以做到这一点:运行循环和线程。

如果您只是通过HTTP URL下载一些数据,您可以开始下载,并告诉它在下载完成或有一些数据可供下载时通知您。URL下载将使用当前的run循环管理自己的并发性,您的应用程序将能够与用户交互。

如果需要执行自己的处理,可以使用NSOperationQueue和NSOperatipn、GCD (dispatch_*)或直接使用NSThread关闭后台线程。如果这样做,您需要了解并发编程、使用互斥锁(锁)和其他同步机制保护共享状态等。

对于简单的URL下载,使用NSURLDownload自己的并发支持。对于更多处理繁重的工作,可以尝试一下NSOperation。

票数 1
EN

Stack Overflow用户

发布于 2010-08-27 10:16:31

看看 .

您可能对NSURLConnection感兴趣,您可以设置URL并提供代理。当连接/下载完成时,会使用数据调用您的委托。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3580815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档