ios - NSFetchedResultsController 不使用谓词@count 调用委托(delegate)

标签 ios swift nspredicate nsfetchedresultscontroller nsfetchrequest

我有一个获取的结果 Controller ,它在有谓词时不调用它的委托(delegate)。谓词仅包括具有 events 的 Conversation 对象:

    let predicate = NSPredicate(format: "events.@count > 0")

    let fetchRequest = Conversation.MR_requestAllSortedBy(
        "mostRecentMessage.eventDate",
        ascending: false,
        withPredicate: predicate)
    self.fetchedResultsController = NSFetchedResultsController(
        fetchRequest: fetchRequest,
        managedObjectContext: MagicalRecordStack.defaultStack()!.context,
        sectionNameKeyPath: nil,
        cacheName: nil)
    self.fetchedResultsController.delegate = self

    self.fetchedResultsController.MR_performFetch()

这适用于初始提取,但在添加数据后,它不会调用委托(delegate)。删除谓词后,它会调用委托(delegate)。

还有其他方法吗?

最佳答案

获取谓词只能检查核心数据属性,因为对象本身仍然是错误的。 fetch predicate 不会获取请求实体的所有对象然后过滤它们,它只是获取通过过滤谓词的对象。

作为解决方法,您可以获取事件实体。然后使用部分键按对话分组。

关于ios - NSFetchedResultsController 不使用谓词@count 调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252582/

相关文章:

ios - 'NSMutableDictionary'没有可见的@interface声明选择器 'addObjects:forKey'

ios - 点击按钮时用新部分填充 UItableView

ios - Swift 数组问题

ios - 什么是 Swift 中 java 的 instanceof 的等价物?

ios - UIVisualEffect 没有显示在 UIView 上

swift - 我过滤了字典的 NSMutableArray 然后我想再次过滤一个键

ios - eventsMatchingPredicate 在跨越多天的事件中找不到最后日期

ios - 递增数字动画

ios - 如何在 iOS 中初始化该协议(protocol)?

ios - 使用单个 NSPredicate 过滤多个数组