получить выходные кадры не удалось, состояние 8196 - PullRequest
0 голосов
/ 09 октября 2018

Когда я пытаюсь настроить ячейку tableView, я обнаружил эту ошибку.

"Не удалось получить выходные кадры, состояние 8196"

Я просто понятия не имею,это ошибка из области или из моей ячейки настройки tableView.

class StudentTableViewController: UITableViewController {

    let realm = try! Realm()
    var student: Results<StudentName>?
    var selectedClass: ClassName? {
        didSet {
            load()
        }
    }
    var selected: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.title = selected
        tableView.register(StudentTableViewCell.self, forCellReuseIdentifier: "studentName")
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return student?.count ?? 1
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "studentName", for: indexPath) as! StudentTableViewCell
        cell.name.text = student?[indexPath.row].name ?? "There are no student in this class"
        cell.number.text = "\(student?[indexPath.row].studentNumber ?? 0)"
        return cell
    }
    func load() {
        student = selectedClass?.studentNames.sorted(byKeyPath: "studentNumber", ascending: true)
        tableView.reloadData()
    }
}

Я думаю, что это сработало, когда я использую Xcode 9 и Swift 4.1, но теперь в Xcode 10 это не так, поскольку показывает только этоошибка и вся пустая страница представления таблицы.

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Если у вас есть отдельный файл .xib для ячейки, вы должны использовать:

tableView.register(nib: UINib?, forCellReuseIdentifier: String)

Другими словами, регистрация вашей ячейки будет выглядеть примерно так:

self.tableView.register(UINib(nibName: "your cell nib name", bundle: nil), forCellReuseIdentifier: "your cell identifier")

Если вы поместили свою ячейку в табличное представление внутри контроллера, который находится в раскадровке, вам не нужно регистрировать свою ячейку, и, как упомянул @ Dávid Pásztor, убедитесь, что вы добавили идентификатор ячейки в ячейку раскадровки

0 голосов
/ 05 августа 2019

Эта ошибка может быть напечатана в консоли при использовании Realm, даже если вы собираетесь использовать его только в автономном режиме.

Когда приложение запускается в режиме отладки, оно анонимно собирает аналитику, как указано в этом ответе: Realm Swift используется только локально, однако он все еще пытается подключиться к сети

Чтобы устранить ошибку, нажмите «Изменить схему», добавьте переменную среды REALM_DISABLE_ANALYTICS и установите ее на YES как показано:

Экран переменной среды

0 голосов
/ 09 октября 2018

Если вы используете раскадровку, вы не должны вызывать tableView.register, вам просто нужно установить reuseIdentifier для вашей ячейки-прототипа в раскадровке.

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