2017-09-15 3 views
1

Webサーバーから画像をダウンロードするには、次のコードを参考にしてください。リクエストはHTTPなので、安全です。iOS 11 ATSでHTTPから画像をロード

DispatchQueue.global(qos: .userInitiated).async { 
     var productImage = Utilities.GetEmptyImageBottle() 
     if (entry.ImageName != nil || entry.ImageUrl != nil) { 
      let data = NSData(contentsOf: URL(string: entry.ImageUrl.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)!) 

      if data != nil { 
       let image = UIImage(data: data! as Data) 
       productImage = image! 
      } 
     } 
     DispatchQueue.main.async { 
      cell.ProductImage.image = productImage 
     } 
    } 

また、私は今、私のイメージはロードされませんし、私は次のエラーを取得する私のInfo.plistファイルに

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

を以下を追加しました:

NSURLConnection finished with error - code -1002 

これはXcodeの9でありますiOS 11を実行しています.Xcode 8のiOS 10では問題ありません。

私は何を欠席しましたか?

+0

あなたのコードには多くの間違いがあります。 'nil'チェックを使わず、代わりに' if let'文を使用してください。また、NSURLSessionと非同期にWebリクエストをロードする必要があります。 – JAL

答えて

1

NSURLErrorUnsupportedURLの最も一般的な原因は、URL用のプロトコルハンドラがないことです(URL文字列にURLプレフィックスに「http://」が含まれていない可能性があります)。

+1

問題はここにあります:.addingPercentEncoding(withAllowedCharacters:.urlPathAllowed) –

0
Error : Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" 

-1002はhttpよりもURL(ホスト名)に問題があるようです。

0

は問題はiOSの11またはXcodeの9によるものであればかなりわからないが、あなたはこの

.addingPercentEncoding(withAllowedCharacters:.urlPathAllowed)を適用する必要があるように聞こえるの最後の部分だけに

を特殊文字を見つけることができるURL。私はそれを試して、それをフルURLに適用すると、URLのベースではないhttp%35にhttp:formatが壊れているので、Webビューの失敗イベントを取得することはできません。それで、それを特殊文字を含むと思われるURLの部分だけに適用してください。

関連する問題