我该如何处理缓存设置?

时间:2016-11-22 15:35:35

标签: ios nsurlcache nsurlsessionconfiguration

我正在为我公司的开发人员构建一个SDK,无论是在总部还是在国外。此SDK作为Singleton实现,并为开发人员提供从我们的公司服务器获取的数据对象(如果可能)。

我打算在初始化SDK时使用NSURLCache的sharedURLCache配置NSURLSessionConfiguration,但我担心,共享后,缓存设置稍后会被应用程序开发人员更改,可能会导致隐藏的错误。

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

假设您对Objective-c和Swizzling感到满意:

您可以添加NSURLProtocol来拦截相关的呼叫并单独管理其缓存。

然后,为了防止其他NSURL协议覆盖您自己(它们按照注册顺序进行检查),您可以调用注册新的NSURLProtocol [NSURLProtocol registerClass:[MyURLProtocol class]];并在您的备用imp中始终确保添加你的NSURLProtocol是最后一个。

我会确保使用您的sdk将其记录在案并传达给任何开发人员,以确保她了解她的NSURLProtocol总是会因为您的NSURLProtocol而失去总统

以下是来自唯一一位NSHipster的SwizzlingNSURLProtocol的一些引用......