Objective c NSURLConnection initWithRequest:委托:超时,但Safari正常

Objective c NSURLConnection initWithRequest:委托:超时,但Safari正常,objective-c,cocoa,nsurlconnection,Objective C,Cocoa,Nsurlconnection,我使用的是NSURLConnection initWithRequest:delegate:,内容如中所述。我遇到的问题是,当我使用苹果电脑将互联网带宽限制在2MB/s时,我总是在10秒或更长的时间内出现以下错误,有时甚至在60秒时超时 Error Domain=NSURLErrorDomain Code=-1001“请求超时。” 但是,在Safari中打开相同的URL(指向大约2MB文件下载的链接),下载几乎立即开始。同样,如果我使用curl,下载会立即开始 为什么NSURLConnectio

我使用的是
NSURLConnection initWithRequest:delegate:
,内容如中所述。我遇到的问题是,当我使用苹果电脑将互联网带宽限制在2MB/s时,我总是在10秒或更长的时间内出现以下错误,有时甚至在60秒时超时

Error Domain=NSURLErrorDomain Code=-1001“请求超时。”

但是,在Safari中打开相同的URL(指向大约2MB文件下载的链接),下载几乎立即开始。同样,如果我使用
curl
,下载会立即开始

为什么
NSURLConnection
连接到web服务器要花这么长时间?我的应用程序是否可能以某种方式限制其网络访问?沙箱

我使用的是OS X 10.12,部署目标为10.8。代码8.2.1


更新:我按照一些评论中的建议做了,并试图将问题降到最低程度,使其重现。似乎不是NSURLConnection需要很长时间才能响应,而是委托方法需要很长时间才能被调用。我在使用
NSURLSession
时也遇到同样的问题,但仅在使用委托时,而不是在使用基于块的完成处理程序时。因此,我在一个单独的问题中跟进了这一点

您是否仍然使用
NSURLConnection
而不是
nsursession
?您的URL是http还是https?如果是http,您是否在应用程序plist中添加了NSAppTransportSecurity字典和NSAllowsArbitraryLoads项,该项的值为true?(这应该允许任何http URL;如果您只需要支持一个,那么还有另一种方法)@Davewston我正在使用NSURLConnection与旧的OS X目标兼容。我的部署目标目前是10.8,但我们可能会切换到10.9,它也不支持NSURLSession@vitormm这是http在你的鞋子里,我会尽力找出问题所在。尝试一个小的测试应用程序,无论是否使用沙盒,都可以尝试
nsursession
。您是否有可能以某种方式干扰的
NSURLProtocol
代码?