如何解决“笔尖,但没有得到一个UITableView”的错误?

为什么我得到这个错误?

终止应用程序由于未捕获exception“NSInternalInconsistencyException”,原因:' – [UITableViewController loadView]加载了“pB1-re-lu8-view-o7U-YG-E7m”笔尖,但没有得到UITableView。

这里是我的代码:

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 } 

我的故事板是这样的:

故事板

我一次又一次面对同样的问题,所以这是愚蠢的错误,我有UITableViewController子类,在UIViewController添加了UITableView

从你的故事板图像,它可能会解决,如果你使用UIViewController而不是UITableViewController ,试试这种方式可以解决你的问题,就像

 class FriendListTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 

SWIFT 2更新

我试过了@ Viralsavaj的答案,但直到我把“tableView”作为ViewController中故事板的出口“连接”之后,它才起作用。

像这样: @IBOutlet weak var tableView: UITableView!

还要把这个添加到你的class级@Viralsavaj提到:

 class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 

我特别使用这个链接帮助: 如何在一个segue期间从视图控制器引用tableView

只需将你的tableView拖到ViewController中并使其成为一个sockets。 然后你可以引用它的属性,比如self.tableView.reloadData()

此属性以及引用tableView人给我错误,直到我添加tableView作为引用sockets。

希望这有助于未来的人。

我有这个问题Swift 2,Xcode 7.2,我改变了一个View Controller我拖到我的Storyboard到一个自定义的UITableViewController类,然后我把Table View拖到View Controller 。 我没有意识到我把它放在View一个孩子里面,这个View是我拖到Storyboard的原始View Controller一部分。

我只是删除了View并再次添加表视图作为超级视图的第一个孩子。