所以我正在尝试执行所有在后台线程上下载数据的REST调用,以便UI保持响应。
我有一个包含NSOperationQueue的viewcontroller。我创建了一个我的导入器类的实例,它是NSOperation的子类。在我的导入器的main()方法中,我正在设置ASIHTTPDataRequest。我创建请求,然后是开始请求的时间。
问题: 通过在请求上调用“startAsynchronous”来启动请求时遇到了问题。委托回调永远不会被调用。它就像请求开始,下载其数据,但从不调用委托回调方法。
我的解决方案: 当我同步启动请求时,一切似乎都能正常工作(即回调等)。这是正确的解决方案吗?
为什么同步调用有效,但不是异步调用?在Apples“TopSongs”样本之后,我正在为我的导入器类建模。
答案 0 :(得分:6)
如果从主线程运行它,ASIHTTPRequest本身不应该阻止UI。
如果正在解析需要很长时间的数据,请将其粘贴在操作中。
答案 1 :(得分:1)
当方法main()
结束执行时,NSOperation
已完成并释放,因此您更新接收委托回调,因为委托已被释放。