NSCache не кэширует мои файлы при нажатии на UICollectionViewCell для просмотра документа PDF в другом UIViewController - swift - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть приложение представления коллекции, которое при нажатии на ячейку загружает документ 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
}
...