NSFetchedResultsController未使用谓词@count调用委托



我有一个提取的结果控制器,当它有谓词时,它不会调用它的'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()

这适用于初始获取,但在添加数据时,它不会调用委托。删除谓词后,它确实会调用委托。

我还有别的办法吗?

fetch谓词只能根据Core Data属性进行检查,因为对象本身仍然是错误。fetch谓词不会获取请求实体的所有对象,然后对其进行筛选,它只是获取通过筛选谓词的对象。

作为变通方法,您可以获取Event实体。然后使用section键按Conversation分组。

最新更新