根据 的文档NSURLSessionConfiguration::protocolClasses
,无法保证将使用我的自定义 url 协议。我如何确保在我将其设置为protocolClasses
属性时使用它?
在处理请求之前,NSURLSession 对象首先搜索默认协议,然后检查您的自定义协议,直到找到能够处理指定请求的协议。它使用canInitWithRequest: 类方法返回YES 的协议,表明该类能够处理指定的请求。
我无法使用单个 URL 协议设置数组,因为它具有canInitWithRequest:
方法逻辑并且可能无法处理所有请求。
NSArray *currentProtocolClasses = sessionConfiguration.protocolClasses ?: @[];
NSMutableArray *protocolClasses = [NSMutableArray arrayWithArray:currentProtocolClasses];
[protocolClasses insertObject:[CustomURLProtocol class] atIndex:0];
sessionConfiguration.protocolClasses = protocolClasses;