2016-04-16 3 views
0

私はamazonS3バケットに画像をアップロードしました。指定したユーザーのプロフィール画像をダウンロードしようとしています。 Xcodeは、URLタイプhttpがサポートされていないため、ファイルを開くことができないと言います。何か見落としていますか?Xcode - URLタイプhttpがサポートされていないため、開けませんでした

func retrieveProPic(proPicString: String, userID: String){ 

    let downloadRequest = AWSS3TransferManagerDownloadRequest() 
    downloadRequest.bucket = "profilepicturetest1" 
    downloadRequest.key = userID 
    let proPicURL = NSURL(string: proPicString) 
    if let picURL = proPicURL { 
     downloadRequest.downloadingFileURL = picURL 
    } 

    let transferManager = AWSS3TransferManager.defaultS3TransferManager() 
    transferManager.download(downloadRequest).continueWithBlock { (task) -> AnyObject? in 
     if let error = task.error { 
      print("Failed to download because of (\(error))") 
     } 
     if task.result != nil { 

      if let data = NSData(contentsOfURL: downloadRequest.downloadingFileURL) 

      { 
       self.proPicImage = UIImage(data: data) 
       dispatch_async(dispatch_get_main_queue()){ 
        self.tableView.reloadData() 
       } 
      } 

      print("made it to have result") 

     } else { 

      print ("Unexpected empty result") 

     } 

     return nil 

    } 

} 
+0

HTTPのiOS 9のトランスポート層セキュリティ –

答えて

0

あなたInfo.plistに以下を追加します。

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

それとも、それらを手動で入力する場合:

  1. は辞書としてあなたの財産リストにApp Transport Security Settingsを追加します。
  2. 新しく作成した辞書の+を押して、Allow Arbitrary Loadsを選択します。
  3. キーをYESに設定します。

ネットワーキング・アプリケーションとの安全な接続を使用することをお勧めしますので、これは唯一の、しかし一時的な解決策として使用する必要があります。

+0

こんにちは!私はすでにそれを入れていますが、同じエラーがまだあります。 – cnichs27

0

私はばかげていました。一時ファイルパスを作成するために必要です。

func retrieveProPic(proPicString: String, userID: String){ 
    let downloadedFilePath = NSTemporaryDirectory().stringByAppendingString("downloaded-myImage.jpg") 
    let downloadedFileURL = NSURL(fileURLWithPath: downloadedFilePath) 

    let downloadRequest = AWSS3TransferManagerDownloadRequest() 
    downloadRequest.bucket = "profilepicturetest1" 
    downloadRequest.key = userID 
    downloadRequest.downloadingFileURL = downloadedFileURL 

let transferManager = AWSS3TransferManager.defaultS3TransferManager() 
transferManager.download(downloadRequest).continueWithBlock { (task) -> AnyObject? in 
    if let error = task.error { 
     print("Failed to download because of (\(error))") 
    } 
    if task.result != nil { 

     if let data = NSData(contentsOfURL: downloadedFileURL) 

     { 
      self.proPicImage = UIImage(data: data) 
      dispatch_async(dispatch_get_main_queue()){ 
       self.tableView.reloadData() 
      } 
     } 

     print("made it to have result") 

    } else { 

     print ("Unexpected empty result") 

    } 

    return nil 

} 
関連する問題