NSURLCache,设置自定义键

Tim*_*tin 4 nsurlcache ios

我正在使用NSURLCache,我想为NSURLRequest设置自定义密钥.那可能吗?

完整说明:

我正在开发一个使用OpenStreetMap图块的地图应用程序.OpenStreetMap提供多个服务器来为磁贴提供服务,以减少每台服务器的负载.我随机使用这些服务器.例如,以下网址将提供相同的图块:

显然,它会给我的缓存带来一些问题,因为如果我从服务器A缓存一个磁贴,下次,如果我尝试从服务器B加载,NSURLCache将找不到该磁贴.

所以,我想自己设置缓存键,以便处理这种情况.那可能吗?

Lou*_*nco 5

你也可以继承NSURLCache并重写的实现cachedResponseForRequest:storeCachedResponse:forRequest:-然后用setSharedURLCache:将其设置为你的子类.

最简单的事情可能是调用super存储(或不覆盖),但随后的查询,如果它是一个瓷砖的要求,做好一切准备(使用super),并返回响应,如果你得到一个非空的.