
我们在使用 CoreData 的事务查询(Query)持久存储变更记录时,往往需要进一步过滤事务类型,比如将事务限制在 CloudKit 操作导致的变更中。
我们可以通过为持久存储改变请求(NSPersistentHistoryChangeRequest)增加断言来实现该需求。
这要求我们在 NSPersistentHistoryTransaction.fetchRequest 返回的请求对象中增加断言:

不过,在上面的代码中,NSPersistentHistoryTransaction.fetchRequest 总返回 nil,导致后续操作无法进行。
这该如何解决呢?
其实修复该问题很简单!
Let’s fix it!!! 😉
之所以 NSPersistentHistoryTransaction.fetchRequest 总返回 nil,是因为它的执行上下文不正确,我们必须把它放在正确的上下中执行。
将博文开头的代码做如下修改:
func