我正在构建一个针对公司开发人员的 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/