私はイメージのリンクをカンマで区切った文字列を持っています。ここで私はそれを配列に分割します:let imagesLinks = imageLins.components(separatedBy: ",")
。SDWebImageはURLにnilを与えます
for imag in imagesLinks
{
let img = UIImageView()
print("\(baseReportImageURL)\(imag)")
img.sd_setImage(with: URL(string: "\(baseReportImageURL)\(imag)"), placeholderImage: nil)
imagesArray.append(img.image!)
}
print文は私がブラウザ上で開いたときにダウンロードし、正しいURLを与えている。そして、私は、画像をダウンロードして、このようにUIImage
配列に格納し、一つのリンクを取得するためにループのために使用しました画像。問題は配列を追加する行、すなわちimagesArray.append(img.image!)
にあります。私が取得:
fatal error: unexpectedly found nil while unwrapping an Optional value
と
fatal error: unexpectedly found nil while unwrapping an Optional value
だから何がこのために正解でしょうか?
img.sd_setImage(with: imgURL, placeholderImage: nil,options: SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in
activityIndicator.stopAnimating()
imagesArray.append(image!)
self.photoCollection.reloadData()
})
だから、アクティビティを回転し続け:私はSDWebImage
を使用していると私は完了ブロックを使用する場合、アプリケーションの奇妙な行動があるので
私の質問が異なる
UPDATE私が戻ってビューをもう一度押すと、即座に画像がロードされます。だから私は完了ブロックは、イメージがダウンロードされたときに呼び出されないと思うが、それはなぜですか?
可能な複製を実行するために、[URLの画像が存在するかどうかを確認]このブロック(https://stackoverflow.com/questions/29962938/check-if -url-image-exist) – Desdenova
'imageLinks'に空のリンクがないことを確認してください。 –
@Chaudhry Talhaあなたは更新後に画像の配列を取得しますか? –