我有一个问题,我不知道为什么方法2无法获得价值?
方法1:可以获得价值!
-(void) searchBar:(UISearchBar *) searchBar textDidChange:(NSString *)searchText{
NSString *firstName = @"55566666666";
AllMainEventRows3 = [AllMainEventRows mutableCopy];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",firstName];
NSArray *filteredArray = [AllMainEventRows3 filteredArrayUsingPredicate:predicate];
NSLog(@"filteredArray: %@", filteredArray);
}
LOG:
filteredArray: (
{
JoinSuccess = 55566666666;
bmabout = "";
bmaddr = "\U53f0\U5317\U5e02\U9752\U5cf6\U6771\U8def99\U865f10F-6";
})
方法2:无法获得价值!
-(void) searchBar:(UISearchBar *) searchBar textDidChange:(NSString *)searchText{
AllMainEventRows3 = [AllMainEventRows mutableCopy];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchText];
NSArray *filteredArray = [AllMainEventRows3 filteredArrayUsingPredicate:predicate];
NSLog(@"filteredArray: %@", filteredArray);
}
LOG:
filteredArray:(
)
答案 0 :(得分:2)
textDidChange
告诉代表用户更改了搜索文本是UISearchBarDelegate的委托方法,只要在搜索栏中更改文字就会调用它,我不会我认为第二种方法会获得价值,因为自动触发委托方法意味着你没有调用它们,也不能创建具有相同名称的多个委托方法。你可以为此目的声明一些自定义方法。
谓词中的问题?会引用usage of NSPredicate