2

我正在创建一个NSURLConnection但使用无效的 URL (http://thiswontwork.com/asdf)。我在主线程上调用它,并且在我的委托中实现了所有委托方法。

连接挂起并且从不调用任何委托方法,我本来希望connection:didFailWithError:被调用的。唯一调用的委托方法是

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse

有没有人遇到过这样的事情?

发生在设备上的调试器和模拟器中(xCode4 上的 iOS5)。

已经创建了一个带有单个按钮示例的简单视图控制器来演示,如果需要可以发布代码。

正在根据请求设置超时间隔(至 30 秒)。

4

1 回答 1

1

如果返回 nil,则连接完成。我现在不在文档前面,但我相信将NSURLRequest传递的内容返回到函数中是标准做法。就像是:

-(NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response{
    return request;
}

编辑

在查看文档后,我明白你的意思。如果您返回 nil 会发生什么,该文档极具误导性。它说如果您返回 nil,则连接将继续,但我相信这仅适用于response不是 nil 的情况。我在我编写的一个小型下载管理器项目中测试了返回 nil,它似乎完全停止了连接。

这似乎要么是一个错误,要么是一个糟糕的文档实例。

于 2012-04-04T04:50:11.023 回答