【问题标题】:Asynchronus operation inside NSOperationNSOperation 内部的异步操作
【发布时间】:2012-09-28 07:30:48
【问题描述】:
我有一个网络服务,我用它来将图像上传到服务器。我在NSOperation 中使用服务。当我同步调用服务的方法时,一切正常,但是当我异步调用方法时,Web服务器永远不会收到请求。我能想到发生这种情况的唯一原因是线程被杀死了,即使在 web 服务异步调用内部有一个循环保持当前的 runloop 处于活动状态,直到收到响应。
【问题讨论】:
标签:
ios
multithreading
networking
nsoperation
wsdl2objc
【解决方案1】:
查看NSOperation 的文档,您将了解如何实现并发NSOperations。简而言之,不是实现main,而是实现start、isConcurrent、isExecuting 和isFinished。所以通常你会为isConcurrent返回YES,在start方法中开始你的请求并将isExecuting设置为YES,当你的请求完成时将isFinished设置为YES。有关更多详细信息,请参阅 Apple 的官方 NSOperation 类文档。