Ios “如何修复”;但没有';“无法获得UITableView”;错误?

Ios “如何修复”;但没有';“无法获得UITableView”;错误?,ios,iphone,uitableview,swift,uiview,Ios,Iphone,Uitableview,Swift,Uiview,为什么我会犯这个错误 由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:“-[UITableViewController” loadView]加载了“pB1-re-lu8-view-o7U-YG-E7m”nib,但未获得 UtableView。” 这是我的密码: class FriendListTableViewController: UITableViewController{ var objects = NSMutableArray

为什么我会犯这个错误

由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:“-[UITableViewController” loadView]加载了“pB1-re-lu8-view-o7U-YG-E7m”nib,但未获得 UtableView。”

这是我的密码:

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中的故事板,作为一个出口,它才对我起作用

像这样:
@ibvar tableView:UITableView

还可以将其添加到您的类中,如@Viralsavaj所述:

class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
我还专门使用了此链接帮助:

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

此属性以及引用
tableView
的其他属性都给了我错误,直到我将tableView添加为引用出口


希望这对将来的人有所帮助

我在Swift 2,Xcode 7.2中遇到了这个问题,我将一个
视图控制器
拖到我的
故事板
上,变成了一个自定义
UITableViewController
类,然后我将一个
表视图
拖到
视图控制器
上。我没有意识到我把它放在了
视图的子视图中,该视图是我拖到
故事板上的原始
视图控制器的一部分


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

我想你的答案是我们如何使用objective-c设置委托,我已经这样设置了委托“FriendListTableViewController:UIViewController,UITableViewDelegate,UITableViewDataSource”。但是我仍然有相同的错误。您是否检查了您的
UITableView
是否已附加顶级。您可以通过
UIStoryBoard
的视图层次结构进行检查。@EgaSetyaPutra上面的答案是使用swift。。您使用的是swift还是objective c?@ViralSavaj您是否阅读了Ega Setya Putra对您答案的评论。如果不先读,然后先读,然后告诉我…@AshokLondhe,我在评论后刚刚更新了答案,所以请注意,我如何才能正确地做到这一点?在Void中写入Did Load方法。。self.delegate=self;self.dataSource=self;并在ViewController.h中扩展。。试试这个,解决问题后通知我。@EgaSetyaPutra告诉我你有什么错误。你的答案不是用objective-c写的吗?因为我用的是swiftyep,我经常用和你一样的方法。它是easier@lukeslvi:从您对我的答案的评论以及这个答案,我无法确定您的问题是否已经解决,或者仍然存在?不再存在。谢谢。我将你的建议与另一个链接的建议结合起来。现在它开始工作了。