ios实现搜索关键字高亮效果

2020-01-21 04:34:49王冬梅

GCD 多线程循环


/**
 2017-12-06 11:56:55.565738 HighlightedSearch[4419:1869486] w
 2017-12-06 11:56:55.566287 HighlightedSearch[4419:1869486] 开始匹配,开始时间:2017-12-06 03:56:55 +0000
 2017-12-06 11:56:55.626184 HighlightedSearch[4419:1869486] 匹配结束,结束时间:2017-12-06 03:56:55 +0000,耗时:0.0601
 2017-12-06 11:56:55.937535 HighlightedSearch[4419:1869486] wa
 2017-12-06 11:56:55.937842 HighlightedSearch[4419:1869486] 开始匹配,开始时间:2017-12-06 03:56:55 +0000
 2017-12-06 11:56:55.983074 HighlightedSearch[4419:1869486] 匹配结束,结束时间:2017-12-06 03:56:55 +0000,耗时:0.0452
 2017-12-06 11:56:56.344808 HighlightedSearch[4419:1869486] wan
 2017-12-06 11:56:56.347350 HighlightedSearch[4419:1869486] 开始匹配,开始时间:2017-12-06 03:56:56 +0000
 2017-12-06 11:56:56.414215 HighlightedSearch[4419:1869486] 匹配结束,结束时间:2017-12-06 03:56:56 +0000,耗时:0.0690
 2017-12-06 11:56:56.711174 HighlightedSearch[4419:1869486] wang
 2017-12-06 11:56:56.712013 HighlightedSearch[4419:1869486] 开始匹配,开始时间:2017-12-06 03:56:56 +0000
 2017-12-06 11:56:56.774761 HighlightedSearch[4419:1869486] 匹配结束,结束时间:2017-12-06 03:56:56 +0000,耗时:0.0632
 */
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_apply(self.dataSource.count, queue, ^(size_t index) {

enumerateObjectsWithOptions 多线程循环


/**
 2017-12-06 11:58:12.716606 HighlightedSearch[4428:1869917] w
 2017-12-06 11:58:12.717005 HighlightedSearch[4428:1869917] 开始匹配,开始时间:2017-12-06 03:58:12 +0000
 2017-12-06 11:58:12.780168 HighlightedSearch[4428:1869917] 匹配结束,结束时间:2017-12-06 03:58:12 +0000,耗时:0.0633
 2017-12-06 11:58:13.058590 HighlightedSearch[4428:1869917] wa
 2017-12-06 11:58:13.058841 HighlightedSearch[4428:1869917] 开始匹配,开始时间:2017-12-06 03:58:13 +0000
 2017-12-06 11:58:13.116964 HighlightedSearch[4428:1869917] 匹配结束,结束时间:2017-12-06 03:58:13 +0000,耗时:0.0581
 2017-12-06 11:58:13.397052 HighlightedSearch[4428:1869917] wan
 2017-12-06 11:58:13.397338 HighlightedSearch[4428:1869917] 开始匹配,开始时间:2017-12-06 03:58:13 +0000
 2017-12-06 11:58:13.460298 HighlightedSearch[4428:1869917] 匹配结束,结束时间:2017-12-06 03:58:13 +0000,耗时:0.0630
 2017-12-06 11:58:13.763888 HighlightedSearch[4428:1869917] wang
 2017-12-06 11:58:13.764263 HighlightedSearch[4428:1869917] 开始匹配,开始时间:2017-12-06 03:58:13 +0000
 2017-12-06 11:58:13.833888 HighlightedSearch[4428:1869917] 匹配结束,结束时间:2017-12-06 03:58:13 +0000,耗时:0.0697
 */
dispatch_queue_t queue = dispatch_queue_create("wpf.updateSearchResults.test", DISPATCH_QUEUE_SERIAL);
[self.dataSource enumerateObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {