六. 多音字
简单测了一下拥有该功能的产品:
微信搜索(就是文中讲的该类型搜索)是在本地做的,不支持多音字
钉钉的搜索是服务器做的,支持多音字(但是简单测了一下一些基本的多音字存在bug)
七. 实际项目还要做哪些工作?
正常情况下不会将所有的匹配结果在第一时间全部显示,一般产品需求显示三五个即可,因此可以匹配出若干个结果后停止循环,点击更多再匹配剩余数据源
配合DB和hashTable,每次只解析新增的数据源,解析一次后就缓存起来
八. 使用方法
1. 事例工程
git clone git@github.com:PengfeiWang666/HighlightedSearch.git
cd Example
open HighlightedSearch.xcworkspace
2. Install
pod "HighlightedSearch"
3. Usage
// WPFPinYinDataManager 依次添加数据源(标识符为了防止重名现象)
+ (void)addInitializeString:(NSString *)string identifer:(NSString *)identifier
// 更新搜索结果
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
...
...
for (WPFPerson *person in [WPFPinYinDataManager getInitializedDataSource]) {
WPFSearchResultModel *resultModel = [WPFPinYinTools searchEffectiveResultWithSearchString:keyWord Person:person];
if (resultModel.highlightedRange.length) {
person.highlightLoaction = resultModel.highlightedRange.location;
person.textRange = resultModel.highlightedRange;
person.matchType = resultModel.matchType;
[resultDataSource addObject:person];
}
}
最后附上源码:https://github.com/PengfeiWang666/HighlightedSearch
注:相关教程知识阅读请移步到IOS开发频道。










