No codigo do curso você faz a conexão do controler - tela, eu fiz aqui ta tela-controle e ele gerou automaticamente o seguinte codigo.
@IBOutlet weak var tableView: UITableView!
e no seu ficou assim
@IBOutlet var tableView: UITableView? e posteriormente você fez o if let para garantir a funcionalidade, qual seria a melhor das abordagens? Eu acho ser a sua abordagem mas fiquei curioso pq imagino que a IDE não algo que possa explodir posteriormente. O que seria esse weak var?