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

Posted

技术标签:

【中文标题】在快速键入期间使用搜索栏进行搜索时 TableView 崩溃【英文标题】:TableView crashes while making search using search bar during fast typing 【发布时间】:2017-03-31 07:09:34 【问题描述】:
    我使用 fetchedResultsController(FRC) 来获取和列出使用 fetchedObjects 的 tableview。而且这些项目都很好。 我也有一个搜索栏。键入任何字符串都会更新 FRC,如下所示 & perfomFetch() 并重新加载 tableView。

fetchedResultsController.fetchRequest.predicate = NSPredicate(format: "title CONTAINS[c] %@, text)

一切正常,除非我在 searchBar 上搜索得更快。崩溃发生在 cellForRowAtIndexPath 和 numberOfSections 中,说 fetchedObjects 是“空的”

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

【问题讨论】:

把代码放在这里 你能给我一个完整的代码吗 【参考方案1】:

如果您使用 FetchedResultsController 的 fetchedObjects 计数属性指定部分中的行数,有时您的 FetchedResultsController 的 fetchedObject 可能会在这种情况下应用崩溃。

试试

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

【讨论】:

您分享的代码很有帮助,我已经使用“numberOfRowsInSection”和“viewForHeaderInSection”中的“if (fetchedResultsController.sections?.count)! > section”这样的部分检查来解决它。谢谢。

以上是关于在快速键入期间使用搜索栏进行搜索时 TableView 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

键入时的 Android 搜索列表

当用户键入输入栏时通过表格过滤

搜索期间关闭键盘时的顶部栏颜色

QTableView:如何设置搜索栏

当我在 google chrome /students/student_name 的搜索栏中键入此内容时,我想获取数组列表的此名称

在搜索期间重新加载 UITableView