Заполнение UITableView строками базы данных SQLite в Swift - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь убедить мое приложение в переборе базы данных SQLite, хранящейся локально на телефоне, и затем заполнении ячеек результатами.Запрос выполняется с помощью SQLite.swift

. Я думал об итерациях по ячейкам с помощью indexPath.row и опции LIMIT в SQL, но я не знаю, верен ли мой подход.

Мой код пока:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCells") as! SettingTableViewCell

    do {
        let query = fatherTable.limit(indexPath.row, offset: indexPath.row)
        for father in try self.localDatabase.prepare(query) {
            cell.label1.text = father[self.fatherName]
            cell.label2.text = father[self.fatherLastName]
            cell.label3.text = father[self.fatherAge]
        }
    }
    catch {
        print(error)
    }

    return cell
}

1 Ответ

0 голосов
/ 20 декабря 2018

Ваш подход неверен, вам нужно выбрать все элементы внутри viewDidLoad, затем перезагрузить таблицу (если вы будете делать это асинхронно), выборка внутри cellForRowAt не подходит для производительности, плюс она установит ячейкудля последнего элемента, как cellForRowAt вызывается для каждой ячейки

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