I've been getting an error that says "Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value". Can someone please clarify what this error means, it appears around line let cell = tableView.dequeueReusableCell(withIdentifier: "MovieCell") as! MovieCell
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { func tableView( _ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return movies.count
}
func tableView( _ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "MovieCell") as! MovieCell
let movie = movies[indexPath.row]
let title = movie["title"] as! String
let synopsis = movie["overview"] as! String
cell.titleLabel.text = title
cell.synopsisLabel.text = synopsis
return cell
}
@IBOutlet weak var tableView: UITableView!
var movies = [[String:Any]]()
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
// Do any additional setup after loading the view.
print("Hello")
let url = URL(string: "https://api.themoviedb.org/3/movie/now_playing?api_key=a07e22bc18f5cb106bfe4cc1f83ad8ed")!
let request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 10)
let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { (data, response, error) in
// This will run when the network request returns
if let error = error {
print(error.localizedDescription)
} else if let data = data {
let dataDictionary = try! JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
self.movies = dataDictionary["results"] as! [[String:Any]]
self.tableView.reloadData()
print(dataDictionary)
// TODO: Get the array of movies
// TODO: Store the movies in a property to use elsewhere
// TODO: Reload your table view data
}
}
task.resume()
}
}