3 回答

TA貢獻1851條經(jīng)驗 獲得超5個贊
通常,更容易創(chuàng)建這樣的請求
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:60.0];
然后創(chuàng)建連接
NSURLConnection *conn = [NSURLConnection connectionWithRequest:request
delegate:self];
并在委托上實現(xiàn)連接:willCacheResponse:方法。剛剛返回nil應(yīng)該這樣做。
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}

TA貢獻1836條經(jīng)驗 獲得超4個贊
如果你正在使用NSURLSession,另一個防止Cache.db在app的Caches目錄中創(chuàng)建寫入iOS的請求和參數(shù)的解決方案是將會話NSURLCache的配置設(shè)置為0大小的內(nèi)存和0大小的磁盤緩存,例如
let configuration = URLSessionConfiguration.default
configuration.urlCache = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
let session = URLSession(configuration: configuration)
或者如上所述設(shè)置在全局緩存級別
URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
據(jù)推測,磁盤大小為0會阻止iOS寫入磁盤,但如果你有策略,reloadIgnoringLocalCacheData那么你可能對內(nèi)存緩存也不感興趣。
注意這將阻止任何Caches/Cache.db(請求和響應(yīng))或Caches/fsCachedData/文件夾(響應(yīng)數(shù)據(jù))的創(chuàng)建。我們決定出于安全目的在應(yīng)用程序中采用這種方法,因為我們不希望我們的請求永遠存儲在磁盤緩存中。
如果有人知道有一種方法可以停止請求緩存,但保持從iOS URL加載機制緩存響應(yīng)數(shù)據(jù),我有興趣知道。(根據(jù)我的判斷,沒有關(guān)于此的API或官方文檔)
- 3 回答
- 0 關(guān)注
- 661 瀏覽
添加回答
舉報