爲什麼不要你試試這個:
var imageURL: NSURL? {
didSet {
image = nil
if view.window != nil {
fetchImage()
}
}
}
private func fetchImage() {
if let url = imageURL {
DispatchQueue.global(qos: .userInitiated).async {
self.spinner?.startAnimating()
let contentsOfURL = NSData(contentsOf: url as URL)
DispatchQueue.main.async {
if url == self.imageURL {
if let imageData = contentsOfURL {
self.image = UIImage(data: imageData as Data)
} else {
self.spinner?.stopAnimating()
}
} else {
print("ignored data returned from url \(url)")
}
}
}
}
}
而當你想使用IMAGEURL:
let ImageNames = ["esbn": "http://www.imgs.ie/uploads/banners/esb1.png"]
func getImageNamed(imageName: String?) -> NSURL? {
if let urlstring = ImageNames[imageName ?? ""] {
return NSURL(string: urlstring)
} else {
return nil
}
}
imageURL = getImageNamed(imageName: imageName)
檢查[這些搜索結果](http://stackoverflow.com/search?q=%5Bios%5D+check+u RL +存在)。你真的需要在你的問題中提供更多的細節。 – rmaddy
@rmaddy,好的,我會 – aircraft
仍在等待你的問題中的其他細節。你是否試圖檢查URL是否存在,而沒有實際下載圖像?請解釋你想要的。這將有助於說明什麼語言(Swift/Objective-C)。 – rmaddy