我有一个数组控制器,我已经绑定了一个实体,排序描述符和谓词。如果我在应用程序运行时更改谓词格式,它可以工作,所以绑定工作。
我的问题是当我想更改谓词 f.ex 时。使用用户输入的搜索词或某些字符串,没有任何反应,但是当我向核心数据数据库添加记录时,表格视图会更新。
所以我的问题是,我如何告诉数组控制器谓词已经改变并且它应该更新自己。这是我输入搜索词时运行的代码,它也可以正常工作,并且我可以正确获取所有 NSLogs 输出。只是我的 tableview 没有更新自己。
- (IBAction)didChangeSearch:(id)sender {
if (sender == searchField) {
NSString *searchterm = [sender stringValue];
if (searchterm.length > 1) {
predicate = [NSPredicate predicateWithFormat:@"name contains [c]%@", @"m"];
NSLog(@"Putting predicate to the job : %@", searchterm);
} else {
predicate = nil;
NSLog(@"There is nolonger any predicate");
}
}
NSLog(@"I just got %@", [sender stringValue]);
}
一开始我想说,我对绑定非常陌生,直到今晚才使用它们,对它们有很好的感觉,并且喜欢它,为我节省了很多代码,我终于理解了它(最多1天能够)。