2016-08-16 7 views
1

私はそれをキャッシュするためにS3から画像をダウンロードしようとしています。キャッシングが働いているのない この:キャッシングAWSMobileHubスウィフトでIOSのS3から画像をキャッシュする

let manager = AWSUserFileManager.defaultUserFileManager() 
let content = manager.contentWithKey("public%2F" + userID + "_profile.jpg") 
content.getRemoteFileURLWithCompletionHandler({[weak self](url: NSURL?, error: NSError?) -> Void in 
guard let url = url else { 
     print("Error getting URL for file. \(error)") 
     return 
     } 
     let imageData = NSData(contentsOfURL: url) 
     imageView.image = UIImage(data: imageData!) 
     }) 

そして、これが動作していません。

 let content = manager.contentWithKey("public%2F" + userID + "_profile.jpg") 
    if !content.cached { 
     print("Not Cached") 
     imageView.image = UIImage(named: "UserIcon") 
     content.downloadWithDownloadType(AWSContentDownloadType.IfNewerExists, pinOnCompletion: false, progressBlock: nil, completionHandler: { (content: AWSContent?, data: NSData?, error: NSError?) -> Void in 
       print("Cached") 
       imageView.image = UIImage(data: data!) 
     }) 
    } else { 
     print("Cached2") 
     imageView.image = UIImage(data: content.cachedData) 
    } 

私が完了した後にエラーが発生し得る:ドメイン: "com.amazonaws.AWSContentManager.ErrorDomain" - コード: 1

私のコードで何が間違っていますか?

答えて

0

私はそれを見つけました。進歩を利用する必要があります!

if !content.cached { 
     print("Not Cached") 
     imageView.image = UIImage(named: "UserIcon") 
     content.downloadWithDownloadType(AWSContentDownloadType.IfNewerExists, pinOnCompletion: false, progressBlock: {(content: AWSContent?, progress: NSProgress?) -> Void in 
      return 
      }, completionHandler: { (content: AWSContent?, data: NSData?, error: NSError?) -> Void in 
      if let error = error { 
       print("Failed to download a content from a server.)") 
       print("Error " + error.debugDescription) 
       return 
       } 
      print("Cached") 
      imageView.image = UIImage(data: data!) 

     }) 
    } else { 
     print("Cached2") 
     imageView.image = UIImage(data: content.cachedData) 
    } 
-1

他の1つがまだダウンロードされている間に同じコンテンツをダウンロードしている可能性があります。少なくともそれは私の問題です。

関連する問題