Извлечение из Core Data и отображение в UITableView с пользовательской ячейкой - PullRequest
0 голосов
/ 04 июня 2018

У меня есть UITableView с пользовательской ячейкой:

заголовок, метка, текст

Это 3 элемента UITextView, теперь у меня есть сущность в моих основных данных:

enter image description here

Я хочу поставить заголовок, заголовок, дату в метке и introText в тексте:

Я сделал это:

    do{
        var request = NSFetchRequest<NSFetchRequestResult>(entityName: "Actualites")
        let count  = try context.count(for: request)
        if (count == 0) {
            REST().SaveArticles(limit: 5, limitstart: 0, catid: 6, key: "xxx", context: context)
        } else {
            var actualites  = [Actualites]()
            actualites = try context.fetch(request) as! [Actualites]


            let cell:ActuTblCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! ActuTblCell

            for actualites in actualites {

                print(actualites.title)

            }
        }
    }catch{
        print(error)
    }

Я могу получить заголовки в цикле, но как отобразить данные?Нужно ли создавать 3 массива?

РЕДАКТИРОВАТЬ: Я думаю, что я должен сделать цикл здесь?

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


    let formatter = DateFormatter()
    formatter.dateFormat = "dd/MM/yyyy HH:mm"

    cell.titleActuCell.text = actualites[indexPath.row].title
    cell.dateActuCell.text = formatter.string(from: actualites[indexPath.row].created! as Date)
    cell.descriptionActuCell.text = actualites[indexPath.row].introText

    return cell
}

Тема 1: Неустранимая ошибка: Индекс выходит за пределы

1 Ответ

0 голосов
/ 04 июня 2018

В вашем контроллере представления храните массив Actualites: var actualites = [Actualites]().Тогда ваш else блок будет выглядеть следующим образом:

else {
    actualites = try context.fetch(request) as! [Actualites]
    tableview.reloadData()
}

. Вы должны реализовать протокол UITableViewDataSource, чтобы возвращать количество ячеек на основе массива actualites, а в tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) вы получитедействительность для каждой ячейки по этому утверждению: let actuality = actualites[indexPath.row] и отображение в соответствующей ячейке.

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