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!
这是我得到的错误:
*由于未捕获的异常'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吗?
答案 0 :(得分:1)
好像您在UITableView
中声明了UITableViewController
个出口。确保您的类是UIVIewController
的子类,而不是UITableViewController
的子类。
在情节提要中,找到标识符为“ showEntries”的视图控制器,将其删除,然后拖动UIViewController
元素而不是UITableViewController
元素。
然后将UITableView
放到UIViewController
中,并将其连接到视图控制器中的tableview出口属性。
答案 1 :(得分:0)
执行以下步骤。 1.从情节提要中删除所有出口。 2.创建一个类型为UIViewController的类。 3.将新的表格视图拖放到情节提要中。 4.将所有插座与相应的UI元素相连。
或者您需要将类设为UITableViewController类型。
现在它不会崩溃。