Пользовательские подклассы NSURLProtocol не доступны для фоновых сессий

Из NSURLSession.h...

/* An optional array of Class objects which subclass NSURLProtocol.
   The Class will be sent +canInitWithRequest: when determining if
   an instance of the class can be used for a given URL scheme.
   You should not use +[NSURLProtocol registerClass:], as that
   method will register your class with the default session rather
   than with an instance of NSURLSession. 
   Custom NSURLProtocol subclasses are not available to background
   sessions.
 */
@property (nullable, copy) NSArray<Class> *protocolClasses;

Пользовательские подклассы NSURLProtocol не доступны для фоновых сессий.

Каким было бы преимущество ограничения пользовательских подклассов NSURLProtocol для запуска только в сеансах переднего плана?

1 ответ

Из документации Apple:

Фоновые сеансы аналогичны сеансам по умолчанию, за исключением того, что отдельный процесс обрабатывает все передачи данных.

Apple просто не предоставляет способ ввести ваш NSURLProtocol подкласс в другой процесс, управляемый самой iOS.

То же ограничение относится к WKWebView,

Другие вопросы по тегам