【发布时间】:2017-05-22 15:14:50
【问题描述】:
根据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;
【问题讨论】:
标签: ios networking nsurlsession nsurlprotocol nsurlsessionconfiguration