gpt4 book ai didi

ios - fetchedResultsController 不过滤 (fetchRequest)

转载 作者:行者123 更新时间:2023-11-28 10:57:14 24 4
gpt4 key购买 nike

我正在尝试获取按其属性之一(单词)过滤的实体列表,为此我使用了 fetchedResultsController,一切看起来都正常。该列表已加载并显示在我的 tableView 上,我什至可以对列表进行排序,但是当我尝试使用 predicate 过滤它时,没有任何反应。我不知道我做错了什么。我尝试了苹果网站和 stackoverflow 的一些问题,我真的不知道我做错了什么。

这是我的 fetchedResultsController

代码
lazy var fetchedResultsController: NSFetchedResultsController<TranslationContainer> = {

let fetchRequest = NSFetchRequest<TranslationContainer>()

let entity = TranslationContainer.entity()
fetchRequest.entity = entity


let predicate = NSPredicate(format: "word == %@", "Bed")// doesn't filter
fetchRequest.predicate = predicate


let sortDescriptor = NSSortDescriptor(key: "word", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]

fetchRequest.fetchBatchSize = 20

let fetchedResultsController = NSFetchedResultsController(
fetchRequest: fetchRequest,
managedObjectContext: self.managedObjectContext,
sectionNameKeyPath: nil,
cacheName: "TranslationContainers")
fetchedResultsController.delegate = self
return fetchedResultsController
}()

如有任何建议,我们将不胜感激!

最佳答案

NSFetchedResultsController 可以选择性地缓存结果,如果您像上面的代码那样更改 NSPredicate,缓存内容可能会不同步。解决这个问题的一种方法是在设置新谓词之前删除缓存:

NSFetchedResultsController.deleteCache(withName: "TranslationContainers")
fetchedResultsController.fetchRequest?.predicate = predicate

关于ios - fetchedResultsController 不过滤 (fetchRequest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com