9

我们的应用程序中有很多 Web 视图,我最近添加了一个 NSURLProtocol 来拦截来自它们的一些请求。

我注意到一些 Web 视图多次调用 +[NSURLPRotocol canInitWithRequest:] 方法,似乎是完全相同的请求。有时6或7次。我试图弄清楚为什么会发生这种情况。

有人对这个有经验么?我已经注销了 [NSURL absoluteString] 和 httpMethod 值,它们对于每个请求都是相同的。我希望这个方法只会为服务器所需的任何给定文件或资源调用一次,而不是多次。它似乎因网页而异。

有任何想法吗?

4

1 回答 1

5

我不是专家,但 AFAIK 这是正常行为。[NSURLPProtocol canInitWithRequest:] 可以为同一个请求多次调用。如果您希望每个请求只收到一次通知,您应该在 -startLoading 方法中捕获它。我发现本教程有助于构建简单的 NSURLProtocol 子类,它可以做到这一点:http ://www.raywenderlich.com/59982/nsurlprotocol-tutorial

于 2014-05-31T11:46:34.347 回答