无法将类型 'UITableViewCellContentView' (0x111d61280) 的值转换为 'UIImageView' (0x111d4cdd0)

Could not cast value of type 'UITableViewCellContentView' (0x111d61280) to 'UIImageView' (0x111d4cdd0)

我是 Swift 的新手,我正在尝试构建 YouTube 视频应用程序。 我在下面遇到了这个错误。

[14835:1757198] Could not cast value of type 'UITableViewCellContentView' (0x111d61280) to 'UIImageView' (0x111d4cdd0).

下面是我的代码。

import UIKit

class tableview_blackpink: UIViewController , UITableViewDataSource, UITableViewDelegate {
  @IBOutlet weak var tableView: UITableView!
  var videos:[Video] = [Video]()

  override func viewDidLoad() {
    super.viewDidLoad()

    let model = VideoModel()
    self.videos = model.getVideos()

    self.tableView.dataSource = self
    self.tableView.delegate = self
  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return videos.count
  }

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "BasicCell")!
        //let videoTitle = videos[indexPath.row].videoTitle

    //Customize the cell to display the video

        //cell.textLabel?.text = videoTitle

    //Construct the video thumbnail url
    let videoThumbnailUrlString = "http://i1.ytimg.com/vi/" + videos[indexPath.row].videoId + "/mqdefault.jpg"

    //Create NSURL object
    let videoThumbnailUrl = URL(string: videoThumbnailUrlString)

    if videoThumbnailUrl != nil{

        //Create NSURL request object
        let request = URLRequest(url: videoThumbnailUrl!)

        //Create NSURLSession

        let session = URLSession.shared
        //Create datatask and pass in the request
        let dataTask = session.dataTask(with: request, completionHandler: {(data: Data?, response: URLResponse?, error: Error?) -> Void in


                DispatchQueue.main.async{ 

                    //Get a reference to the imageView element of the cell
                    let imageView = cell.contentView.viewWithTag(1) as! UIImageView

                    //Create an image object from the data and assign it into the imageView
                    imageView.image = UIImage(data: data!)
                }
        })

        dataTask.resume()

        }

        return cell
   }
}

我这里出错了。

let imageView = cell.contentView.viewWithTag(1) as! UIImageView

我在谷歌上搜索了很多,得到的答案是解决这个问题

let imageView = cell.viewWithTag(1) as! UIImageView

let imageView = cell.contentView.viewWithTag(1) as! UIImageView

我试过了,但仍然出现同样的错误。 我正在关注 this YouTube 视频教程,下面的代码不适用于最新版本。

Code for Swift2.2 is here 我感谢任何帮助。提前致谢。

如果在单元格的子视图中找不到也是 UIImageView 的 (tag == 1),imageView 将为 nil。

  let imageView = cell.subviews.first(where: { (temp) -> Bool in
    return temp is UIImageView && temp.tag == 1
  }) as? UIImageView