在快速键入期间使用搜索栏进行搜索时,TableView会崩溃

时间:2017-03-31 07:09:34

标签: ios swift uitableview core-data swift3

  1. 我使用了fetchedResultsController(FRC)来使用fetchedObjects获取和列出tableview。这些物品都很好。
  2. 我也有一个搜索栏。在键入任何字符串时将更新FRC,如下所示& perfomFetch()并重新加载tableView。
  3. fetchedResultsController.fetchRequest.predicate = NSPredicate(format: "title CONTAINS[c] %@, text)

    除非我在searchBar上搜索得更快,否则一切正常。崩溃发生在cellForRowAtIndexPath& numberOfSections表示fetchedObjects为' Empty'

    如何解决因快速搜索导致的崩溃?

1 个答案:

答案 0 :(得分:1)

如果你已经使用了FetchedResultsController的fetchedObjects count属性来指定section中的行数,有时你的FetchedResultsController的fetchedObject可能是nil,在这种情况下app崩溃。

尝试

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.fetchedResultsController.fetchedObjects?.count ?? 0
    }