UISearchController - 搜索结果显示不同的记录
Posted
技术标签:
【中文标题】UISearchController - 搜索结果显示不同的记录【英文标题】:UISearchController – Search result show different records 【发布时间】:2019-09-22 08:48:08 【问题描述】:当我在搜索栏中输入“stefanik”时,结果是一条记录(但外观不同),当我点击它时,是正确的记录,请参见屏幕截图。 我认为问题出在这些方法上,但我找不到问题。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
if (self.searchController.active)
return 1;
else
return [[self.fetchedResultsController sections] count];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if (self.searchController.active)
return [self.filteredList count];
else
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
你以前见过这个问题吗? 截图
【问题讨论】:
【参考方案1】:如果您使用NSFetchedResultsController
应用NSPredicate
来过滤例如记录
if (self.searchController.active)
self.fetchedResultsController.fetchRequest.predicate = [NSPredicate predicateWithBlock: ^BOOL(id obj, NSDictionary *bind)
return [[(Airport *)obj name] rangeOfString:searchText options:NSCaseInsensitiveSearch].location != NSNotFound;
];
else
self.fetchedResultsController.fetchRequest.predicate = nil
// reload data
这比在代码中过滤到额外的数组更有效
【讨论】:
您好,谢谢。寻求帮助,我发现了问题,问题出在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath以上是关于UISearchController - 搜索结果显示不同的记录的主要内容,如果未能解决你的问题,请参考以下文章
UISearchController:即使搜索栏为空也显示结果
UISearchController - 搜索结果显示不同的记录