Cómo corregir el error "nib pero no obtuvo un UITableView"?

¿Por qué recibo este error?

Terminando la aplicación debido a la exception no detectada 'NSInternalInconsistencyException', razón: '- [UITableViewController loadView] cargó el plumón "pB1-re-lu8-view-o7U-YG-E7m" pero no obtuvo una UITableView.

aquí está mi código:

class FriendListTableViewController: UITableViewController{ var objects = NSMutableArray() var dataArray = [["firstName":"Debasis","lastName":"Das"],["firstName":"John","lastName":"Doe"],["firstName":"Jane","lastName":"Doe"],["firstName":"Mary","lastName":"Jane"]] override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: - Table View override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return dataArray.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell let object = dataArray[indexPath.row] as NSDictionary (cell.contentView.viewWithTag(10) as! UILabel).text = object["firstName"] as? String (cell.contentView.viewWithTag(11) as! UILabel).text = object["lastName"] as? String return cell } override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { // Return false if you do not want the specified item to be editable. return false } 

mi storyboard es así:

guión gráfico

He enfrentado el mismo problema una vez, y tan estúpido error fue que tengo subclasss UITableViewController , donde he agregado UITableView en UIViewController

Desde la image de su guión gráfico, se puede resolver si usa UIViewController lugar de UITableViewController . Solo intente de esa manera puede resolver su problema, como

 class FriendListTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 

ACTUALIZACIÓN DE SWIFT 2

Probé la respuesta de @ Viralsavaj, pero no funcionó para mí hasta que "conecté" la tablaView como una salida del storyboard en el ViewController.

así: @IBOutlet weak var tableView: UITableView!

También agregue esto a su class como @Viralsavaj mencionado:

 class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 

También utilicé específicamente esta ayuda de enlace: Cómo hacer reference a tableView desde un controller de vista durante una segue

Simplemente arrastre su tableView al ViewController y conviértalo en una salida. Luego puede hacer reference a sus properties como self.tableView.reloadData() .

Esta propiedad, así como otras que tableView reference a tableView , me estaban dando errores hasta que agregué el tableView como un punto de reference.

Espero que esto ayude a aquellos en el futuro.

Tuve este problema con Swift 2, Xcode 7.2, cambié un View Controller UITableViewController que arrastré a mi Storyboard a una class UITableViewController personalizada, luego arrastré una Table View al View Controller UITableViewController . No me di count de que lo colocé como un elemento secundario de la View que formaba parte del View Controller original que arrastré al Storyboard .

Simplemente eliminé la View y agregué nuevamente la vista de tabla como el primer hijo de la Super View.