Core Data 是否为 NSFetchRequest 提供存在性查询?

Does Core Data provide an existential query for NSFetchRequest?

给定一个 NSManagedObjectContext 和一个 NSFetchRequest,我想知道如果我发出提取请求是否会返回一个非空结果集。

存在方法countForFetchRequest:error:,可以使用。这看起来肯定比实际执行请求并取回对象(或错误)要好。然而,在很多情况下,知道有一些就足够了:确切的数字根本不重要。

即使您不关心确切的数字是多少,您要问的问题仍然是 "is the count greater than zero"?没有特定的内置方法,因此要求计数并将结果与​​零进行比较是正确的方法。它在内存和时间方面也更便宜,因为您不需要花时间将不需要的对象提取到内存中。

可以做一些事情,比如用 fetchLimit 为 1 来执行获取,但那更晦涩(你正在获取你不需要的东西)。