У меня проблемы с получением правильного доступа к объекту результата Realm с помощью cellForRowAt UITableView.
Вот настройка:
UITableViewController разделен на разделы на основе категории объектов (строка, определенная вобъект).
UITableViewController имеет переход к UIViewController, который принимает ввод формы. Этот контроллер представления пишет в Realm, а затем выполняет обратный вызов через делегирование, чтобы обновить данные табличного представления.
Когда этот экран закрывается и возвращается к UITableViewController, когда я пытаюсь добавить строку через категорию, я получаюпустые предметы. Однако, когда я использую цикл for в cellForRowAt, я могу получить доступ к данным.
Вот что я запускаю в этом разделе:
func loadItems() {
itemsList = try! Realm().objects(Items.self).filter("list_id = \(list_id)").sorted(byKeyPath: "item_category")
tableView.reloadData()
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "itemListCell", for: indexPath)
let categoryName = categories.categories[indexPath.section]
let currItem = itemsList[indexPath.row]
if currItem.item_category == categoryName {
cell.textLabel!.text = currItem.item_name
}
return cell
}
Кажется, что оценка категории выполняется правильнои заходя в этот блок, но item_name и item_category объекта имеют значение null. Вот снимок экрана отладчика внутри оператора if:
Изображение отладчика
Есть ли что-то, что мне нужно изменить в зависимости от того, как я использую объект, извлекая данныеи т. д., чтобы получить правильные данные в объекте?