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