AlamofireImage как почистить память и кеш
Я использую Alamofire и AlamofireImage в своем приложении для получения данных и фотографий.
Alamofire.request(.GET, URLString, encoding: .JSON)
.authenticate(user: user, password: password)
.responseJSON() { (response) -> Void in
if let jsonResult = response.result.value {
if jsonResult.count > 0 {
...
let photo_url = jsonResult[index]["Photo_url"] as! String
Alamofire.request(.GET, photo_url)
.authenticate(user: user_photo, password: password_photo)
.responseImage { response in
if let image = response.result.value
{
button.setBackgroundImage(image, forState: .Normal)
}
}
}
}
}
У меня сбой, если пользователь использует приложение в течение длительного времени. Я не могу поймать его в симуляторе IOS на Mac, но я проверил, и я думаю, что если память в телефоне закончилась пользовательский сбой. Я использую Crashlytics для аварийного сбоя, но не вижу этого аварийного сбоя в Crashlytics. Я проверил журналы (доступ и ошибки) на моем сервере Nginx, а также не вижу проблем и ошибок.
После там я думаю, что это проблема с памятью в телефоне. Как очистить кеш и память, если я использую Alamofire? Можно ли почистить кеш Alamofire?
Я попытался использовать эту функцию и очистить изображение в кэше перед моим запросом photo_url, но у меня тот же сбой:
func clearImageFromCache(url: String) {
let URL = NSURL(string: url)!
let URLRequest = NSURLRequest(URL: URL)
let imageDownloader = UIImageView.af_sharedImageDownloader
// Clear the URLRequest from the in-memory cache
imageDownloader.imageCache?.removeImageForRequest(URLRequest, withAdditionalIdentifier: nil)
// Clear the URLRequest from the on-disk cache
imageDownloader.sessionManager.session.configuration.URLCache?.removeCachedResponseForRequest(URLRequest)
}