2016-06-17 12 views
0

私はFirebase Storageの周りに頭を抱えようとしています。 私はオンラインで見たことがあり、画像を取得する2つの方法を試しました。 これらの2つの違いは何ですか? (両方の仕事)。第一の方法についてFirebase Storage retrieval images

1.

if let data = NSData(contentsOfURL: NSURL(string:photoUrl)!) 
{ 
    let myImage = UIImage(data: data)! 

    MyImageCache.sharedCache.setObject(myImage, forKey: self.key) 
    //etc 
} 

2.

self.storage.referenceForURL(photoUrl).dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in 
    if (error != nil) 
    { 
     print(error) 
    } 
    else 
    { 
     let myImage = UIImage(data: data!) 

     MyImageCache.sharedCache.setObject(myImage!, forKey: self.key) 
     //etc  
    } 
} 

答えて

0

、あなたがそれを使用するべきではありません。私は私のFirebaseデータベースからphotoUrlを取得した後そう

ネットワークコール。ドキュメントから:

この同期方式を使用してネットワークベースのURLを要求しないでください。ネットワークベースのURLの場合、この方法は低速ネットワーク上で現在のスレッドを数十秒間ブロックすることができ、ユーザーエクスペリエンスが低下し、iOSでアプリが終了する可能性があります。ファイル以外のURLの場合は、NSURLSessionクラスのdataTaskWithURL:completionHandler:メソッドの使用を検討してください。詳細については、URLセッションプログラミングガイドを参照してください。

第2の方法は、Firebaseフレームワークに焼き付けられ、画像をダウンロードするための便利な方法を提供します。つまり、画像サイズを指定するオプションがあります。これはおそらくイメージを取得するために最適化されており、ほとんどのシナリオでは好ましい方法です。

関連する問題