У меня возникают проблемы с правильным доступом к объекту результата 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:
Есть ли что-то, что мне нужно изменить в том, как я использую объект, извлекаю данные и т. Д., Чтобы получить правильные данные в объекте?