为什么我的UITableView上出现NSInternalInconsistencyExceptionException?

时间:2019-04-23 18:25:49

标签: ios swift uitableview exception

UPDATE 事实证明,我对项目的重命名导致发生以下问题:我遵循了所有这些步骤(How do I completely rename an Xcode project (i.e. inclusive of folders)?)。我删除了所有的插座,但仍然出现错误,因此我仍然不知道到底是什么导致了这种情况。现在,我将还原到以前命名的项目并从那里开始。如果您还有其他建议,我将不胜感激!

我只是尝试运行我的应用程序,但是出现“ NSInternalInconsistencyException”异常,表示我的视图控制器未获得UITableView。

我检查了UITableView中的IBOutlet设置是否正确,但仍收到错误消息。

这就是我声明IBOutlet的方式...

class EntryViewController: SwipeTableViewController, UITextFieldDelegate {

    //MARK - IBOUTLETS

    @IBOutlet weak var entryTableView: UITableView!

    @IBOutlet weak var entryTextField: UITextField!
    @IBOutlet weak var saveButton: UIButton!
    @IBOutlet weak var heightConstraint: NSLayoutConstraint!
    @IBOutlet weak var searchBar: UISearchBar!

这是我得到的错误:

Screenshot

  

*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:**'-[UITableViewController   loadView]实例化具有标识符“ showEntries”的视图控制器   从情节提要“ Main”中,但没有获得UITableView。”

     

libc ++ abi.dylib:以类型未捕获的异常终止   NSException

我想这会将我的UITableView链接到我的ViewController

此外,我从我的EntryViewController继承了一个名为SwipeTableViewController的视图...

class SwipeTableViewController: UITableViewController, SwipeTableViewCellDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.rowHeight = 80
    }

我的EntryViewController不会从那里自动子类化为UIViewController吗?

2 个答案:

答案 0 :(得分:1)

好像您在UITableView中声明了UITableViewController个出口。确保您的类是UIVIewController的子类,而不是UITableViewController的子类。

在情节提要中,找到标识符为“ showEntries”的视图控制器,将其删除,然后拖动UIViewController元素而不是UITableViewController元素。

然后将UITableView放到UIViewController中,并将其连接到视图控制器中的tableview出口属性。

答案 1 :(得分:0)

执行以下步骤。 1.从情节提要中删除所有出口。 2.创建一个类型为UIViewController的类。 3.将新的表格视图拖放到情节提要中。 4.将所有插座与相应的UI元素相连。

或者您需要将类设为UITableViewController类型。

现在它不会崩溃。