【发布时间】:2012-03-05 09:43:11
【问题描述】:
我有一份食物清单(例如苹果、梨、香蕉等)。假设用户键入“appl”,我希望我的应用程序返回此列表中最接近的前 5 个(数字 5 是任意的)结果。什么是实现这个的好的算法/数据结构?
【问题讨论】:
我有一份食物清单(例如苹果、梨、香蕉等)。假设用户键入“appl”,我希望我的应用程序返回此列表中最接近的前 5 个(数字 5 是任意的)结果。什么是实现这个的好的算法/数据结构?
【问题讨论】:
您应该从数据库中获取所有数据并将其存储在一个数组中,然后如果您使用搜索栏 -
(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;
使用此方法并应用逻辑来搜索类似
for(NSString *curString in backUpArayForAllFiles) {
flagCountForSearch++;
if ([curString rangeOfString:substring options:NSCaseInsensitiveSearch].location == NSNotFound)
{
}
else
{
}
【讨论】:
通常的方法是使用 UISearchDisplayController 来实现 UISearchDisplayDelegate 协议 - 并使用 NSPredicate (NSFetchResultsController) 过滤表。 我认为这可能会有所帮助:NSFetchedResultsController with search
【讨论】: