深入理解 NSPredicate:强大的对象筛选工具
1. NSPredicate 简介
在软件开发中,经常会遇到对一组对象进行筛选的操作,即根据某种已知条件来评估对象,保留符合条件的对象,舍弃不符合的对象。例如,在 iPhoto 中,若要求只显示三星及以上评分的照片,iPhoto 会将所有照片通过“照片评分必须为三星或更高”这一筛选条件,只展示符合条件的好照片。同样,iTunes 的搜索框也可根据特定条件(如艺术家为 Marilyn Manson 或 Barry Manilow)来隐藏不符合的音乐,方便创建独特的舞蹈混音。
Cocoa 提供了 NSPredicate 类来实现这些筛选功能。 NSPredicate 中的“谓词”与英语语法中的“谓语”概念不同,这里的“谓词”是数学和计算机科学意义上的,是一个返回布尔值(真或假)的函数。它可用于描述查询,类似于数据库查询,能与 Core Data 和 Spotlight 等数据库风格的 API 结合使用。可以将 NSPredicate 视为一种间接手段,通过使用谓词对象进行检查,避免在代码中硬编码筛选条件,这也是开闭原则的一种应用。
2. 创建谓词
在使用 NSPredicate 对象对自己的对象进行筛选之前,需要先创建它,主要有两种基本方法:
- 创建并组装多个对象 :这种方法需要编写大量代码,适用于构建通用的搜索条件指定用户界面。
- 使用查询字符串 :对于初学者而言,这种方法更易于处理,因此
超级会员免费看
订阅专栏 解锁全文
10

被折叠的 条评论
为什么被折叠?



