我正在尝试异步加载来自网络的多个图片。我发现这个论坛帖子是“Loading/Downloading image from URL on Swift”,但我仍有一些“问题”。
我有这段代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let newCell = tableView.dequeueReusableCellWithIdentifier("userCell") as! UserCell_TableViewCell
let selectedUser = userArray[indexPath.row]
newCell.userDescription?.text = selectedUser.getFirstName() + " " + selectedUser.getLastName()
if let userImage = selectedUser.getImage()
{
// NO CODE
}
else
{
newCell.userImage.downloadedFrom(self.imageArray[arrayIndex])
}
return newCell
}
extension UIImageView {
func downloadedFrom(urlLink :String)
{
if let urlData = NSURL(string: urlLink) {
NSURLSession.sharedSession().dataTaskWithURL(urlData, completionHandler: { (data, response, error) in
if error == nil
{
print("Correct URL: " + "\(urlLink)")
}
else
{
print("Incorrect URL: " + "\(urlLink)")
}
}).resume()
}
}
}
问题
问题
1)图像可能会将其返回以供其他地方使用吗?
2)如何检测URL无效,从而输入默认图像?
修改
可选({URL:http://findicons.com/files/icons/1072/face_avatars/300/a03.png} {状态代码:200,headers { “Accept-Ranges”= bytes; Connection =“keep-alive”; “Content-Length”= 32759; “Content-Type”=“image / png”; 日期=“2015年10月23日星期五14:20:20 GMT”; “Last-Modified”=“星期四,2010年2月11日10:49:27 GMT”; Server =“nginx / 1.1.19”; }})
可选({URL:http://findicons.com/files/icons/1072/face_avatars/300/a01_BLABLABLA.png} {状态代码:404,headers { Connection =“keep-alive”; “Content-Encoding”= gzip; “Content-Language”= en; “Content-Type”=“text / html; charset = utf-8”; 日期=“2015年10月23日星期五18:01:11 GMT”; Server =“gunicorn / 0.17.4”; “Set-Cookie”=“csrftoken = 81phPal08h22q6d87lC85TqCCOniJhhJ; expires = Fri,2016年10月21日18:01:11 GMT; Max-Age = 31449600; Path = /”; “转移编码”=身份; Vary =“Accept-Encoding,Cookie,Accept-Language”; }})
答案 0 :(得分:1)
response
是NSHTTPURLResponse。如果statusCode
为404
,则您没有数据,不应再继续使用。
您没有收到错误的原因是没有错误;这是一个完全有效和完整的网络来回通信。