2016-04-16 4 views
0

Ich habe Bilder in einen amazonS3-Bucket hochgeladen. Ich versuche, das Profilbild eines bestimmten Nutzers herunterzuladen. Xcode sagt, dass die Datei nicht geöffnet werden konnte, da URL http nicht unterstützt wird. Habe ich etwas übersehen?Xcode - Konnte nicht geöffnet werden, da der URL http nicht unterstützt wird

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

Transportschicht Sicherheit von iOS 9 für http –

Antwort

0

Fügen Sie folgendes zu Ihrem Info.plist:

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

Oder wenn Sie wollen, manuell eingeben:

  1. App Transport Security Settings auf Ihre Eigenschaftsliste als Wörterbuch hinzufügen.
  2. Drücken Sie die + auf das neu erstellte Wörterbuch, und wählen Sie Allow Arbitrary Loads.
  3. Den Schlüssel auf YES setzen.

Dies sollte nur als vorübergehende Lösung obwohl verwendet werden, da sie sichere Verbindungen mit Netzwerkanwendungen zu verwenden, empfohlen wird.

+0

Hallo! Ich habe das bereits eingegeben, aber immer noch denselben Fehler .. – cnichs27

0

Ich war dumm. Zum Erstellen eines temporären Dateipfads erforderlich.

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 

} 
Verwandte Themen