如何通过 NSPredicate 过滤 Core Data 托管对象?
Posted
技术标签:
【中文标题】如何通过 NSPredicate 过滤 Core Data 托管对象?【英文标题】:How to filter Core Data managed objects by NSPredicate? 【发布时间】:2011-06-03 06:30:53 【问题描述】:我需要通过 NSPredicate 过滤 Core Data 中的托管对象。我尝试了以下两种方法来完成过滤任务。
在获取请求过程中应用 NSPredicate。
在获取结果控制器提供的所有托管对象的数组中使用 NSPredicate。
哪种方法更有效?
谢谢
【问题讨论】:
【参考方案1】:我想在获取请求上使用 NSPredicate 会更节省内存,因为这些对象永远不会加载到内存中。
【讨论】:
+1 fetch 中的谓词非常多,即数千倍,效率更高。一方面,您不必实例化每个托管对象来测试它,如果您在内存中进行,则必须按照您必须的方式进行测试。理论上,您可以针对任意大的持久性存储进行获取,而内存中仅限于即时应用资源。以上是关于如何通过 NSPredicate 过滤 Core Data 托管对象?的主要内容,如果未能解决你的问题,请参考以下文章
Core Data NSPredicate 按数组中的项目过滤项目集
SwiftUI Core Data - NSPredicate 动态过滤字符串数组属性包含给定字符串的位置