Быстрые изображения в кэш - PullRequest
0 голосов
/ 26 января 2019

Я анализирую данные и проверяю, находится ли изображение в кеше.Если да, установите его, если не установите его по умолчанию, и отправьте его в кэш.

Часть, которая отправляет его в кэш, продолжает давать ноль ???

Любая помощь будет оценена

Pic_STR = "https://myserver/Pictures/" + Pic +" .jpg "let url = URL (строка: Pic_STR)

            if let imageFromCache = imageCache.object(forKey: Pic_STR as AnyObject) as? UIImage {
                data.photo = imageFromCache
                return
            } else {
                data.photo = UIImage(named: "Default")
                let imageCache = NSCache<NSString, AnyObject>()
                URLSession.shared.dataTask(with: url!) { data, response, error in
                    guard let data = data, error == nil else { return }

                        let imageToCache = UIImage(data: data)
                        imageCache.setObject(imageToCache!, forKey: self.Pic_STR as NSString)
                        //self.image = imageToCache

                    }.resume()
            }

1 Ответ

0 голосов
/ 27 января 2019

После долгих экспериментов я наконец нашел решение.Я уверен, что это может быть улучшено, но это работает.Я бы предпочел использовать расширение, но не могу понять, как.

struct imageData {
    let image: UIImage?
    let name: String?
}

var newImage = UIImage()
var myImages = [imageData]()


   let imageString= "https://myserver/Pictures/" + Pic + ".jpg"
            let imageURL = URL(string: imageString)

            CON2 = false

            for pics in myImages {
                if pics.name == Pic {
                    data.photo = pics.image
                    CON2 = true
                }
            }

            if CON2 == false {
                let data2 = try? Data(contentsOf: imageURL!)

                if let imageData = data2 {
                    newImage = UIImage(data: imageData)!
                }

                let newData = imageData(image: newImage, name: Pic) as imageData
                myImages += [newData]
                data.photo = newImage
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...