我需要异步运行对http服务器的查询并处理响应。该查询实际上是一个非常大的带回调的方法调用链。这增加了复杂性,因为在调用链期间存在大量返回路径。
在完成当前请求之前,不应该开始新请求。
以下是概要:
[Foo poll]
。poll
方法启动一些在后台运行的HTTP请求。在这种情况下ASIHTTPRequest。[Foo onRequestComplete]
来解析响应。调用错误[Foo onRequestError
]时。这是第二条回归路径。以下是捕获:在这些步骤中,在调查完成之前,应忽略(返回)或阻止对poll
的调用。
如何在另一个民意调查运行时确保poll
功能阻止或无操作?
答案 0 :(得分:2)
只需使用NSLock
。
在[Foo poll]
:
if ([lock tryLock]) {
// Do your stuff
}
在[Foo onRequestComplete]
:
[lock unlock];