我有点问题。我从Firebase获取图像,并且我正在尝试添加缓存,因为我尝试使用这种方式,但是像这样,它们不会被缓存:
我宣布了这个变量
var uid:String = ""
var partitionUrl:String = ""
var titre:String = ""
这是链接到firebase。
let storageRef = FIRStorage.storage().reference()
let databaseRef = FIRDatabase.database().reference().child("canticles")
应用程序使用uid获取标题和图像并在UIlabel和UIImageView中显示
@IBOutlet weak var titleCantique: UILabel!
@IBOutlet weak var partitionImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
getPartitionImage()
}
override func viewWillAppear(_ animated: Bool) {
print("partition uid : " + uid)
print("partition URL : " + partitionUrl)
print("partition TITLE : " + titre)
self.titleCantique.text = titre
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func getPartitionImage(){
DispatchQueue.main.async(execute: {
self.storageRef.child(self.partitionUrl).data(withMaxSize: 10*1024*1024, completion: { (data, error) in
if error != nil {
print(error!)
return
}
let image = UIImage(data: data!)
self.partitionImageView.image = image
})
})
}
}
问题是手机未连接时,图像没有出现。 我可以通过为图像添加缓存来解决这个问题,然后它会在离线状态下显示?
答案 0 :(得分:1)
我就这样开始了
我第一次使用cocoapod
添加了FirebaseStorageCache在swift文件中:
import UIKit
import Firebase
import FirebaseStorageCache
并像我这样实现了我的getPartitionImage函数
func getPartitionImage() {
let ref: FIRStorageReference = self.storageRef.child(self.partitionUrl)
FirebaseStorageCache.main.get(storageReference: ref) { data in
self.partitionImageView.setImage(storageReference: ref)
}
}
}