class MyViewController : UIViewController { var service: Service! var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() //if properties hasn't been set service.getSomeData() //the developer is able to find out the error and fix it avoiding the undefined state tableView.reloadData() } }