Ошибка при преобразовании результатов в список для dataSource в UITableView - Realm

107
11

Я продолжаю ошибочно fatal error: unexpectedly found nil while unwrapping an Optional value при использовании List сделанного из Results качестве моего источника данных для моего таблицы.

Я знаю, что могу использовать Results качестве источника данных, на самом деле я попробовал, и он работает нормально, но я не хочу показывать первый элемент в своем TableView, поэтому я перехожу к Results в List чтобы иметь возможность удалить это из Results без необходимости удалять его из Realm.

Что мне здесь не хватает?

Вот код...

var lists : List<ItemList>!

override func viewDidLoad() {
super.viewDidLoad()

updateLists()
}

func updateLists(){
let allLists = realm.objects(ItemList.self)

// Convert Results to List to be able to remove first item
var lists: List = List(allLists)
lists.remove(at: 0)
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return lists.count // error points here
}

Это не должно быть nil, вот вывод... print("\(realm.objects(ItemList.self))")

Results<ItemList> (
[0] ItemList {
listName = List One;
createdAt = 2017-05-06 01:12:47 +0000;
items = RLMArray <0x6180002e4200> (
[0] Item {
productName = Bananas;
createdAt = 2017-05-06 18:23:59 +0000;
},
[1] Item {
productName = Grapes;
createdAt = 2017-05-07 11:37:33 +0000;
}
);
},
[1] ItemList {
listName = List Two;
createdAt = 2017-05-06 18:16:14 +0000;
items = RLMArray <0x6180002e4180> (
[0] Item {
productName = Apples;
createdAt = 2017-05-06 18:16:14 +0000;
},
[1] Item {
productName = Oranges;
createdAt = 2017-05-06 18:16:14 +0000;
}
);
}
)

ОШИБКА: указывает на метод numberOfRowsInSection

фатальная ошибка: неожиданно найден nil при развертывании необязательного значения

спросил(а) 2017-05-07T16:09:00+03:00 3 года, 5 месяцев назад
1
Решение
58

Вы создаете экземпляр другого экземпляра массива списков внутри метода updateLists(). Попробуйте исправить вот так:

// Convert Results to List to be able to remove first item
var lists: List = List(allLists)
self.lists = lists
self.lists.remove(at: 0)

ответил(а) 2017-05-07T16:24:00+03:00 3 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема