首页 文章

NSOperation中的NSXMLParser

提问于
浏览
1

我必须下载并解析大量的XML文件 . 下载数据发生在NSOperation中,一旦下载完成,它也会触发NSXMLParser .

现在,由于我想让用户随时取消整个过程,我添加了一个取消按钮,停止下载并取消操作 .

现在我的问题是:即使我的NSOperation在后台运行,当NSXMLParser开始解析时,UI也会被完全阻止 . 所以触摸取消按钮是没有意义的 .

怎么会发生这种情况?因为我从NSOperation内部触发解析器(完成下载后),我认为解析也应该在后台执行?!

!!!EDIT!!! :我做了一个测试 . 我检查了解析器运行的线程 . 这是主线程 . 怎么会发生这种情况? NSOperation是在后台线程上启动的,解析器如何在主线程上?我怎么能避免这种情况?

1 回答

  • 1

    解决了它 . 问题是NSURLConnection显然在主线程上调用它的委托,导致后续的每个方法调用也在主线程上执行 .

    所以我只需要再次将我的方法调用到后台 .

相关问题