У меня есть приложение представления коллекции, которое при нажатии на ячейку загружает документ PDF в другой UIViewController.Эти PDF-файлы находятся на удаленном сервере.Я пытаюсь кэшировать эти файлы, используя NSCache, но безуспешно.
Каждый раз, когда я нажимаю на ячейку, я получаю отпечаток с консоли
PDF DOWNLOADED
UIViewController с отображением документа pdf:
let pdfCache = NSCache<NSString, AnyObject>.init()
func loadPDF(pdfURL: String) -> Void {
// FIND IF PDF DOCUMENT IS ALREADY IN CACHE ON KEY 'pdfURL'
if let documentToCache = self.pdfCache.object(forKey: pdfURL as NSString){
self.myPDFView.document = (documentToCache as! PDFDocument)
print("PDF FROM CACHE!")
return
}
// SHOW LOADING CIRCLE
self.showLoadingCircle(activityIndicatorView: self.loadingDisplay.activityIndicator, overlayView: self.loadingDisplay.overlay)
Alamofire.request(pdfURL).responseData { response in
if let data = response.data{
DispatchQueue.main.async{
let document = PDFDocument.init(data: data)
// STORE PDF DOCUMENT TO CACHE
self.pdfCache.setObject(document!, forKey: pdfURL as NSString)
// DISPLAY PDF
self.myPDFView.document = document
print("PDF DOWNLOADED")
// HIDE LOADING CIRCLE
self.hideLoadingCircle(activityIndicatorView: self.loadingDisplay.activityIndicator, overlayView: self.loadingDisplay.overlay)
}
}
}// END RSPONSE HANDLER
}