我有一个UITableView工作得很好。当我使用viewDidLoad()方法中的以下代码启用编辑模式时:
self.tableView.editing = true
我收到以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
在这一行:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return fetchedResultsController.sections!.count // error here
}
我检查过,fetchedResultsController不是nil,但是section是。
如果禁用编辑模式,则不是这种情况。
可能是什么原因?
答案 0 :(得分:1)
要停止此特定错误,您只需在numberOfSectionsInTableView
为fetchedResultsController.sections
时在nil
中返回默认值:
请注意使用sections?
代替sections!
和Nil Coalescing Operator ??
:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return fetchedResultsController.sections?.count ?? 0 // 0 is the default
}
这并不能解释当fetchedResultsController
处于nil
模式时,sections
返回tableView
editing
数组的原因。
我怀疑sections
可能是nil
,因为您在editing
中设置viewDidLoad
并且触发了表格视图重新加载。此时,fetchedResultsController
可能没有足够的时间来获取任何结果,因此它没有任何sections
返回。当0
为sections
时,简单地返回默认值nil
就足够了,因为fetchedResultsController
将有时间完成加载并使用适当的方式重新加载表视图数据
答案 1 :(得分:0)
我认为语法是:
self.tableView.setEditing(true, animated: true)
我没有在任何代码中对此进行建模。所以,如果没有帮助,请告诉我,我会再试一次。