2016-06-17 4 views
0

Firebase Storage에서 머리를 쓰려고합니다. 나는 온라인으로 보았고 이미지를 가져 오는 두 가지 방법을 시도했다. 이 두 가지의 차이점은 무엇입니까? (둘 다 일한다).Firebase 스토리지 검색 이미지

내 중포 기지 데이터베이스에서 photoUrl을 얻을 그래서 후에 : 당신이 그것을 사용하지 않아야 첫 번째 방법에 관한

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

네트워크 통화. 문서에서 :

네트워크 기반 URL을 요청하는 데이 동기식 메서드를 사용하지 마십시오. 네트워크 기반 URL의 경우이 방법을 사용하면 속도가 느린 네트워크에서 현재 스레드를 수십 초 동안 차단하여 사용자 경험이 저하 될 수 있으며 iOS에서는 앱이 종료 될 수 있습니다. 대신 파일이 아닌 URL의 경우 NSURLSession 클래스의 dataTaskWithURL : completionHandler : 메서드를 사용하는 것이 좋습니다. 자세한 내용은 URL 세션 프로그래밍 가이드를 참조하십시오.

두 번째 방법은 firebase 프레임 워크로 구워지고 이미지를 다운로드하기위한 편리한 방법을 제공합니다. 즉, 이미지 크기를 지정하는 옵션을 제공합니다. 이것은 아마도 이미지를 얻는 데 최적화되어 있고 대부분의 시나리오에서 선호되는 방법입니다.

관련 문제