title: Returns nil if I scroll tableView fast
body: <p>Trying to load images in <code>tableView</code> asynchronously in (Xcode 9 and Swift 4) and seems I have a correct way but my code stops working if I scroll my <code>tableView</code> fast. So basically I had <strong>found nil error</strong>.<br>
  Here is my code:</p>
  
  <pre><code>override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell
  
  
      let feed = feeds[indexPath.row]
  
      cell.titleLabel.text = feed.title
      cell.pubDateLabel.text = feed.date
      cell.thumbnailImageView.image = nil
  
      if let image = cache.object(forKey: indexPath.row as AnyObject) as? UIImage {
          cell.thumbnailImageView?.image = image
      } else {
  
          let imageStringURL = feed.imageUrl
  
          guard let url = URL(string: imageStringURL) else { fatalError("there is no correct url") }
  
          URLSession.shared.downloadTask(with: url, completionHandler: { (url, response, error) in
  
              if let data = try? Data(contentsOf: url!) {
                  DispatchQueue.main.async(execute: {
                      guard let image = UIImage(data: data) else { fatalError("can't create image") }
  
                      let updateCell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell // fast scroll issue line
  
                      updateCell.thumbnailImageView.image = image
                      self.cache.setObject(image, forKey: indexPath.row as AnyObject)
                  })
              }
          }).resume()
      }
  
      return cell
  }
  </code></pre>
  
  <p>I have issue on the line: </p>
  
  <pre><code>let updateCell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell
  </code></pre>
  
  <p>If I scroll down slowly everything works just fine and no mistakes appear.</p>
  
  <p>Does anyone know where I've made a mistake?</p>