Ios mainRunloop上的NSURLConnection不工作

Ios mainRunloop上的NSURLConnection不工作,ios,iphone,macos,nsurlconnection,nsrunloop,Ios,Iphone,Macos,Nsurlconnection,Nsrunloop,我在NSURLConnection实例中遇到了这个问题,在使用任意数量的实例之后,它们停止工作,并且从不调用它们的委托的方法。他们的工作方式如下: [[NSRunLoop mainRunLoop] addPort:self.port forMode:NSDefaultRunLoopMode]; [_connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; [self.connection

我在NSURLConnection实例中遇到了这个问题,在使用任意数量的实例之后,它们停止工作,并且从不调用它们的
委托的方法。他们的工作方式如下:

[[NSRunLoop mainRunLoop] addPort:self.port forMode:NSDefaultRunLoopMode];
[_connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.connection start];
[[NSRunLoop mainRunLoop] run];
事实上,它们在使用了很多之后就停止工作了,这让我觉得它们耗尽了任何资源(可能是主runLoop上的端口或其他资源)

看起来一切都很干净

[_connection cancel];
[_connection release];

[[NSRunLoop mainRunLoop] removePort:self.port forMode:NSDefaultRunLoopMode];
[_port release];    
[super dealloc];
你们觉得这种方法有什么不对吗?你知道他们为什么会停止工作吗

根据:

运行循环模式

NSRunLoop defines the following run loop mode.

extern NSString* const NSDefaultRunLoopMode;
extern NSString* const NSRunLoopCommonModes;
我注意到您已经将NSDefaultRunLoopMode用于似乎是NSConnection对象的对象,尽管没有看到其余代码,我只是在猜测。您可以尝试使用的另一种方法是
性能选择器:onThread:withObject:waitUntilDone:
,因为您的一个连接可能处于竞争状态

Constants

NSDefaultRunLoopMode

    The mode to deal with input sources other than NSConnection objects.