Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用NSURLSession在Web服务调用中使用NSURLCache_Ios_Iphone_Web Services_Nsurlcache - Fatal编程技术网

Ios 如何使用NSURLSession在Web服务调用中使用NSURLCache

Ios 如何使用NSURLSession在Web服务调用中使用NSURLCache,ios,iphone,web-services,nsurlcache,Ios,Iphone,Web Services,Nsurlcache,我正在使用NSURLSession的应用程序中使用Web服务,并希望使用NSURLCache缓存我的Web服务调用,以优化应用程序的速度。如果服务器上有任何更新,也应在后台重新加载缓存 我怎样才能做到这一点?请建议……我对您的问题没有确切的答案,但这些链接可以帮助您: 我对你的问题没有确切的答案,但这些链接可以帮助你: NSURLSession根据标准协议缓存策略,默认情况下使用缓存,这基本上意味着如果缓存控制头允许缓存,如果它没有过期,如果它是一个GET请求,如果请求小于缓存大小的5%左右,等

我正在使用NSURLSession的应用程序中使用Web服务,并希望使用NSURLCache缓存我的Web服务调用,以优化应用程序的速度。如果服务器上有任何更新,也应在后台重新加载缓存


我怎样才能做到这一点?请建议……

我对您的问题没有确切的答案,但这些链接可以帮助您:
我对你的问题没有确切的答案,但这些链接可以帮助你:
NSURLSession根据标准协议缓存策略,默认情况下使用缓存,这基本上意味着如果缓存控制头允许缓存,如果它没有过期,如果它是一个GET请求,如果请求小于缓存大小的5%左右,等等,它将缓存它,并将在您再次请求时使用缓存

但是,听起来您还希望能够在编程控制下清除缓存。为此,在创建会话之前,首先将会话配置上的URLCache属性设置为新分配的NSURLCache

稍后,当您想要清除缓存时,只需对该缓存对象调用removeAllCachedResponses方法


当然,问题是如何知道服务器上是否发生了更改,以及是否正在缓存所有请求。很可能,您至少需要在禁用缓存的情况下发出一些请求。当然,详细信息是特定于您尝试执行的操作的。

NSURLSession根据标准协议缓存策略,默认情况下使用缓存,这基本上意味着如果缓存控制头允许缓存它,如果它没有过期,如果它是GET请求,如果请求小于缓存大小的5%左右等,它将缓存它,并在您再次请求时使用缓存

但是,听起来您还希望能够在编程控制下清除缓存。为此,在创建会话之前,首先将会话配置上的URLCache属性设置为新分配的NSURLCache

稍后,当您想要清除缓存时,只需对该缓存对象调用removeAllCachedResponses方法

当然,问题是如何知道服务器上是否发生了更改,以及是否正在缓存所有请求。很可能,您至少需要在禁用缓存的情况下发出一些请求。当然,细节是具体到你想做什么