我有一个获取的结果控制器,当它有一个谓词时,它不会调用它的'委托。谓词仅包含具有events
:
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()
这适用于初始提取,但是在添加数据时,它不会调用委托。删除谓词后,它会调用委托。
我应该采取另一种方式吗?
答案 0 :(得分:0)
fetch谓词只能检查Core Data属性,因为对象本身仍然是故障。获取谓词不会获取所请求实体的所有对象,然后对它们进行过滤,它只会获取通过过滤谓词的那些对象。
作为一种解决方法,您可以获取Event实体。然后使用section key按对话分组。