当使用fatal error: unexpectedly found nil while unwrapping an Optional value
List
作为我的tableView的数据源时,我一直收到错误Results
。
我知道我可以使用Results
作为我的数据源,实际上我尝试了它并且工作正常,但我不想在我的TableView中显示第一项,那就是&#39}为什么我要将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
答案 0 :(得分:1)
您在updateLists()方法中实例化了另一个lists数组实例。 尝试像这样修复:
// Convert Results to List to be able to remove first item
var lists: List = List(allLists)
self.lists = lists
self.lists.remove(at: 0)