我已经使用了NSURLConnection
一千次。这个不是发送请求,也不是调用委托回调。如果我将委托设置为nil,则请求会通过网络进行。当然没有回调。如果我将委托设置为我的项目中恰好符合NSURLConnectionDelegate
的其他随机对象,则回调可以正常工作。
为什么NSURLConnection
会因特定委托实例而失败?
已经确认这是在主线程上,主运行循环和有问题的对象将YES
回复到conformsToProtocol:
以获取适当的协议。它是一个单例,dealloc中的断点永远不会被击中。
在这里添加代码。它没有任何异常,也没有添加任何超出我所说的内容。自我是失败的正确对象;工具栏......是随机获取回调的。
mSessionCookieConnection = [ NSURLConnection connectionWithRequest: cookieReq
delegate: self ];///[ ToolBarHeaderViewController sharedToolBarHeaderViewController ] ];
NSLog( @"Conforms to protocols: %d %d", [ self.class conformsToProtocol: @protocol( NSURLConnectionDataDelegate ) ],
[ self.class conformsToProtocol: @protocol( NSURLConnectionDelegate ) ] );
NSLog( @"Is main thread %@", ([NSThread isMainThread] ? @"Yes" : @" NOT" ));
NSLog( @"%@ the main run loop.", [[ NSRunLoop currentRunLoop ] isEqual: [ NSRunLoop mainRunLoop ]] ? @"Using" : @"Not using" );
输出结果为:
2015-05-07 08:10:50.201 ZZZ[5889:11316419] Conforms to protocols: 1 1
2015-05-07 08:10:50.201 ZZZ[5889:11316419] Is main thread Yes
2015-05-07 08:10:50.202 ZZZ[5889:11316419] Using the main run loop.