【问题标题】:When should I use deleteCacheWithName with fetchedResultsController?何时应将 deleteCacheWithName 与 fetchedResultsController 一起使用?
【发布时间】:2012-02-29 21:30:59
【问题描述】:

当结合 SearchDisplayController 使用核心数据 + 表格视图时,fetchedResultsController 的谓词会发生变化,以便仅获取与搜索显示中的字符串确认的结果子集。

当用户键入搜索字符串时,函数 shouldReloadDisplayForSearchString 会被调用多次。一种常见的策略似乎是简单地用新的谓词覆盖获取的 ResultsController 的当前谓词。 Apple 建议在搜索谓词更改时调用 deleteCacheWithName。

对我来说,每次删除缓存似乎有点残酷。这是这种情况的最佳做法吗?是否有其他策略,例如为搜索实例化一个临时的 fetchedResultsController?

感谢您的帮助!

【问题讨论】:

    标签: ios uitableview caching core-data nsfetchedresultscontroller


    【解决方案1】:

    我认为,正如您所说,这有点残酷,您最好使用不同的搜索控制器请求。例如,我不使用获取的结果控制器作为搜索控制器,而是使用对数组的请求。虽然我的获取结果控制器没有被修改。

    【讨论】:

    • 这种方法听起来合法。将table view的数据源从fetchedResultsController切换到array方便吗?
    • 最简单的解决方案是使用相同的 tableViewController 作为 tableView 和 searchController.tableView 的数据源。然后,在所有数据源方法中,您可以从:if(tableView==self.tableView) 检查您正在参加的两个表视图中的哪一个。
    • 我想我会选择this solution。它使用 2 个 fetchedResultsController。
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2021-01-02
    • 2010-12-09
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多