核心数据搜索与Cocoa界面组件
1. 使用NSPredicate搜索和检索核心数据
1.1 FoundQuotes控制器设置
首先,需要对FoundQuotes控制器进行一项更改,使其能在用户对Quotes控制器进行更改时正确重新加载和重新过滤其内容。操作步骤如下:
1. 选择FoundQuotes。
2. 调出Inspector面板。
3. 点击开启“Auto Rearrange Content”复选框以启用此选项。
之后,切换回Xcode,点击“Build & Run”,此时会看到有两个窗口,新的查询查找窗口会显示通过数据输入窗口输入的所有引用。
1.2 使用NSPredicate限制结果
可以使用NSPredicate来限制NSArrayController准备显示的记录。可以通过以下几种方式为数组控制器分配谓词:
- 直接在Interface Builder中分配。
- 在应用程序代码初始化期间或条件变化需要重新获取数据时分配。
- 通过Cocoa绑定分配,这样谓词的更改会自动传播到控制器。
1.3 创建谓词
创建NSPredicate最简单的方法是使用包含属性名称、比较器和要比较的值的格式字符串。例如:
NSPredicate *p = [NSPredicate predicateWithFormat:
@"(quoteText CONTAINS[cd] 'missed') OR "
"(character CONT