我正在为我公司的开发人员构建一个SDK,无论是在总部还是在国外。此SDK作为Singleton实现,并为开发人员提供从我们的公司服务器获取的数据对象(如果可能)。
我打算在初始化SDK时使用NSURLCache的sharedURLCache配置NSURLSessionConfiguration,但我担心,共享后,缓存设置稍后会被应用程序开发人员更改,可能会导致隐藏的错误。
有更好的方法吗?
答案 0 :(得分:3)
假设您对Objective-c和Swizzling感到满意:
您可以添加NSURLProtocol来拦截相关的呼叫并单独管理其缓存。
然后,为了防止其他NSURL协议覆盖您自己(它们按照注册顺序进行检查),您可以调用注册新的NSURLProtocol [NSURLProtocol registerClass:[MyURLProtocol class]];
并在您的备用imp中始终确保添加你的NSURLProtocol是最后一个。
我会确保使用您的sdk将其记录在案并传达给任何开发人员,以确保她了解她的NSURLProtocol总是会因为您的NSURLProtocol而失去总统
以下是来自唯一一位NSHipster的Swizzling和NSURLProtocol的一些引用......