ios - 我应该如何处理缓存设置?

标签 ios nsurlcache nsurlsessionconfiguration

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

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

有没有更好的办法?

最佳答案

假设您熟悉 Objective-c 和 Swizzling:

您可以添加一个 NSURLProtocol 来拦截相关调用并单独管理它们的缓存。

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

我会确保将其详细记录并传达给使用您的 sdk 的任何开发人员,以确保她了解她的 NSURLProtocol 将始终取代您的 NSURLProtocol

这里有一些对 Swizzling 的引用, 和 NSURLProtocol来自唯一的 NSHipster...

关于ios - 我应该如何处理缓存设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745898/

相关文章:

ios - UICollectionView 不响应 UISearchBar

ios - 以编程方式且没有尺寸类别的不同设备方向的各种自动布局约束?

swift - 在子类化 NSURLSession Swift 时,初始化程序不会覆盖指定的初始化程序

ios - 蜂窝网络上的 NSURLSessionConfiguration 后台任务未下载

ios - NSURLSession后台传输: Callback for each video downloaded from a queue

ios - 如何在这种情况下管理 block

ios - 自定义 EKEventViewController

ios - NSURLCache - 参数不起作用的 GET 请求的磁盘缓存

ios - NSURLCache 缓存不应缓存的随机响应

ios - 究竟什么时候从 urlcache 的内存和磁盘中删除内容?