Почему я получаю исключение NSInternalInconsistencyException в своем UITableView? - PullRequest
1 голос
/ 23 апреля 2019

ОБНОВЛЕНИЕ Оказывается, мое переименование моего проекта вызывает следующие проблемы:. Я выполнил все эти шаги ( Как мне полностью переименовать проект Xcode (т.е. включая папки)? ). Я удалил все свои аутлеты и все еще получаю сообщение об ошибке, поэтому до сих пор не знаю, что именно является причиной этого. Сейчас я просто вернусь к своему ранее названному проекту и уйду оттуда. Если у вас есть какие-либо другие записи, я буду признателен за них!

Я просто пытаюсь запустить свое приложение, но получаю исключение "NSInternalInconsistencyException" о том, что мой контроллер представления не получил UITableView.

Я проверил, что мой IBOutlet от моего UITableView установлен правильно, но я все еще получаю ошибку ..

Вот как я объявляю свой 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.

Кроме того, я делю на подклассы представление с именем SwipeTableViewController из моего EntryViewController ...

class SwipeTableViewController: UITableViewController, SwipeTableViewCellDelegate {

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

Не оттуда ли мой EntryViewController будет автоматически разделен на UIViewController?

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Похоже, у вас есть UITableView розетка, объявленная в UITableViewController.Убедитесь, что ваш класс является подклассом UIVIewController вместо UITableViewController.

. В вашей раскадровке найдите контроллер представления с идентификатором "showEntries", удалите его и перетащите элемент UIViewController вместоUITableViewController element.

Затем поместите UITableView в UIViewController и подключите его к свойству выхода tableview в вашем контроллере представления.

0 голосов
/ 23 апреля 2019

Делайте ниже шаги.1. Удалите все выпуски из раскадровки.2. Создайте класс типа UIViewController.3. Перетащите новый просмотр таблицы на раскадровку.4.Соедините все розетки с соответствующими элементами пользовательского интерфейса.

Или вам нужно сделать свой класс типом UITableViewController.

Теперь он не будет аварийно завершать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...