Как кэшировать изображения в автономном режиме в Swift (без подключения к интернету)? - PullRequest
0 голосов
/ 17 сентября 2018

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

func downloadImages(){
        let storage = Storage.storage().reference()



        for i in animated_images{
            let storageRef = storage.child("images/\(i).jpg")
            storageRef.downloadURL { (url, error) in
                if let error = error{
                    print(error.localizedDescription)
                }
                else{
                    self.downloaded_images.updateValue(url!, forKey: i)
                    self.tableView.reloadData()
                }
            }
        }

    }

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! demoCell
        cell.textDemo.text = images[indexPath.row]

        var image1 = downloaded_images[images[indexPath.row]]
        var image2 = downloaded_images[images[indexPath.row]+"1"]

        var value1 = SDImageCache.shared().imageFromCache(forKey: image1?.absoluteString)
        var value2 = SDImageCache.shared().imageFromCache(forKey: image2?.absoluteString)

        if let downloadURL1 = value1, let downloadURL2 = value2{
            cell.imageDemo.animationImages = [downloadURL1,downloadURL2]
            cell.imageDemo.animationDuration = 2
            cell.imageDemo.startAnimating()
        }
        else{
            cell.imageDemo.sd_setAnimationImages(with: [image1!,image2!])
            cell.imageDemo.animationDuration = 2
            cell.imageDemo.startAnimating()
        }

        return cell
    }

Я новичок в разработке для iOS, и у меня есть некоторые идеи по Coredata и sqlite. Пожалуйста, покажите мне, как это сделать без подключения к интернету. Заранее спасибо

1 Ответ

0 голосов
/ 20 сентября 2018

Для отображения изображений в моем приложении без подключения к Интернету я создал таблицу с именем cached_image с полями image_name и download_url и сохранил соответствующие URL-адреса для изображений.Когда приложение загружается, эти данные cached_images извлекаются из локальной базы данных sqlite и отображаются изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...