首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苹果CocoaXMLParser示例中的运行循环和线程

苹果CocoaXMLParser示例中的运行循环和线程
EN

Stack Overflow用户
提问于 2009-11-21 21:27:31
回答 1查看 378关注 0票数 0

在苹果的CocoaXMLParser示例的CocoaXMLParser类中,出现了以下代码:

代码语言:javascript
复制
 rssConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[self performSelectorOnMainThread:@selector(downloadStarted) withObject:nil waitUntilDone:NO];
if (rssConnection != nil) {
    do {
        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
    } while (!done);
}

根据NSRunLoop文档,“一般来说,您的应用程序不需要创建或显式管理NSRunLoop对象。每个NSThread对象,包括应用程序的主线程,都有一个根据需要自动创建的NSRunLoop对象。”在这种情况下,为什么在本例中要显式管理run-loop?它不是由NSURLConnection请求生成的线程自动创建和销毁的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-22 01:39:43

在该代码中,run循环基本上只是被告知永远运行,以便该线程可以继续处理从NSURLConnection传入的后台数据。即使为您创建了run-loop,默认情况下,线程也会在该方法结束时终止。

通常,在这样做时,将所有内容都放在NSOperation中会更容易,然后再放到NSOperationQueue中(尽管如果您要实现NSUrlConnection回调,则必须在NSOperation类中提供一些额外的方法)。

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

https://stackoverflow.com/questions/1775479

复制
相关文章

相似问题

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