如果我创建一个NSURLConnection并且调用[connection connectionWithRequest]让它加载一点,然后在大多数情况下调用[连接取消]可以正常工作,则NSURLConnection出现问题。然而偶尔甚至在我调用[连接取消]之后,连接的委托仍然被调用(这会导致应用程序崩溃)。 Googling around it看起来像这里的问题是runloop中的竞争条件,我取消连接并释放委托,但在runloop循环之前调用委托函数 - >崩溃。NSURLConnection仍然调用委托AFTER取消方法被调用
我打电话给[连接取消]后确认连接实际上取消了吗?即使是一个蹩脚的while()循环会做:(
同样的问题在这里。请注意,在绝大多数情况下,'cancel'确实可以正常工作,并且委托上不会调用connectionDidFinishLoading和connectionDidFailWithError。看起来像委托对象的生命周期的大小写扩展可以解决这个问题。 – 2012-10-29 16:51:52