2017-06-29 158 views
0

我有一個小問題。我從火力地堡的圖像,我嘗試添加緩存,因爲我用這種方式嘗試,但像這樣的,他們不會被緩存:從firebase和緩存加載圖像swift3

我宣佈這個變量

var uid:String = "" 
var partitionUrl:String = "" 
var titre:String = "" 

而這個鏈接到火力點。

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

我只是繼續這樣

,第一時間,我加入FirebaseStorageCache與cocoapod

在迅速的文件:

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) 


    } 
    } 
}