将异步NSURLConnections链接起来的最合适方法是什么?例如,我需要向用户注册Web服务。工作流程如下: 获取注册令牌=>使用令牌注册=>获取登录令牌=>使用令牌登录。
我知道如何创建异步NSURLConnection,但我不确定如何在继续之前确保先前的连接已完成。我知道我可以使用NSURLConnection sendSynchronousRequest
实现此目的,但我不喜欢在这些链接请求发生时我的主线程被阻止。
答案 0 :(得分:2)
当我们为iPhone构建我们的第一个版本的SignMeOut时,我们确实做到了这一点。我们创建了一个NSUrlconnection的子类,并在connectionDidFinish中为它提供了一个识别标签,你可以使用带枚举的简单开关/案例。效果很好 - 您可以在我们的博客中看到整个流程,示例和代码
http://www.isignmeout.com/multiple-nsurlconnections-viewcontroller/
<强>更新强>
我已经将NSURLConnection子类修改为更简单的类别。大部分用法都相同,但使用相同的类
更清洁答案 1 :(得分:1)
您可以查看connectionDidFinishLoading
以启动另一个异步连接。对于哪个连接结束的条件,您可以保留对连接的引用,以防其他连接也需要完成(在您的情况下可能不需要)。让您的课程遵循NSURLConnectionDelegate
并在connectionDidFinishLoading
委托方法中触发相应的连接。您还可以使用connectionDidReceiveData:
方法检查从服务收到的凭据等。也可以浏览documentation。
答案 2 :(得分:1)
您有不同的选择: