ios – NSURLProtocol canInitWithRequest:多次调用

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

我注意到一些Web视图多次调用[NSURLPRotocol canInitWithRequest:]方法,看起来是完全相同的请求.有时6或7次.我想弄清楚为什么会这样.

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

有任何想法吗?

解决方法

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...