swift 中的 CFURLCacheNode 泄漏?

CFURLCacheNode leaks in swift?

我正在使用 alamofire 进行联网。当我从服务器 CFURLCachNode 下载文件时发生泄漏。

我已经尝试了所有我能找到的解决方案。

我创建了sharedUrlCache

let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
    NSURLCache.setSharedURLCache(URLCache)

我还删除了 didRecieveMemoryWarning() 中的缓存。毕竟,我仍然得到泄漏。

截图如下:

我怎样才能摆脱这个?

好的,让我直截了当地说。您的问题不清楚,因为您没有提及您是如何创建请求的。无论如何,让我为你假设。

我能找到的原因是,如果服务器中没有文件,即404错误,可能会泄漏。如果你修复它,你将无法得到它。

即使文件丢失,您也可以按照以下代码避免以后出现此类错误。

var mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: serverFileURL)!)
mutableURLRequest.HTTPShouldHandleCookies = false
mutableURLRequest.HTTPShouldUsePipelining = true
mutableURLRequest.cachePolicy = NSURLRequestCachePolicy.ReturnCacheDataElseLoad //You can find the details in Apple Documentation

//Replace your request with the mutableURLRequest

希望此解决方案适合您的情况。 如果您发现任何问题,请告诉我。