NSURLProtocol canInitWithRequest: вызывается несколько раз
В нашем приложении много веб-просмотров, и недавно я добавил NSURLProtocol для перехвата некоторых запросов от них.
Я заметил, что некоторые из веб-представлений вызывают метод +[NSURLPRotocol canInitWithRequest:] несколько раз с тем же запросом. Иногда 6 или 7 раз. Я пытаюсь выяснить, почему это может происходить.
У кого-нибудь есть опыт с этим? Я вышел из системы [NSURL absoluteString] и значения httpMethod, и они одинаковы для каждого запроса. Я ожидаю, что этот метод будет вызываться только один раз для любого файла или ресурса, необходимого с сервера, а не несколько раз. И это, кажется, меняется для каждой веб-страницы.
есть идеи?
1 ответ
Я не эксперт, но AFAIK это нормальное поведение. [NSURLPRotocol canInitWithRequest:] может вызываться несколько раз для одного и того же запроса. Если вы хотите получать уведомление только один раз за запрос, вы должны перехватить его в методе -startLoading. Я нашел этот учебник полезным для создания простого подкласса NSURLProtocol, который будет делать именно это: http://www.raywenderlich.com/59982/nsurlprotocol-tutorial