2017-06-29 11 views
0

少し問題があります。私はfirebaseにリンクするために、この変数火災基地から画像を読み込み、swift3をキャッシング

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

そして、これを宣言し

:私はFirebaseと私からの画像は、私はこの方法で試してみましたが、このように、彼らがキャッシュされていないため、キャッシュを追加しようとしてもらいます。

let storageRef = FIRStorage.storage().reference() 
let databaseRef = FIRDatabase.database().reference().child("canticles") 

アプリはUIlabelとUIImageViewにタイトルや画像を取得し、それを表示するために、UIDを使用し

@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

私はちょうど最初の時点では、この

のように進んで、私は、迅速なファイルでcocoapod

でFirebaseStorageCacheを追加しました:

import UIKit 
import Firebase 
import FirebaseStorageCache 

そしてこの

func getPartitionImage() { 

    let ref: FIRStorageReference = self.storageRef.child(self.partitionUrl) 

    FirebaseStorageCache.main.get(storageReference: ref) { data in 

     self.partitionImageView.setImage(storageReference: ref) 


    } 
    } 
} 
ように私のgetPartitionImage機能を実装
関連する問題