通常搜索是UI相关的功能,页面(viewController)上给table配了searchBar。table有个数据源dataSource,在searchBar输入filterText后,用filterText去筛选dataSource,得到最新的filteredDataSource,然后用filteredDataSource进行展示。
根据不同的filter方式,有不同的大小写模糊搜索方式。这个不同主要是【判断a是否包含keyword】的方式的不同。
判断方式1:rangeOfString
遍历dataSource,对每个对象用rangeOfString判断是否包含keyword。
判断语句:if ([a rangeOfString:keyword].location == NSNotFound)
改造方式:添加options NSCaseInsensitiveSearch。
改造后:if ([a rangeOfString:keyword option:NSCaseInsensitiveSearch].location == NSNotFound)
扩展知识:options还支持其他搜索模式,参考:iOS开发中,NSString的比较用法_xcode nsstring 对比_xiaojin38的博客-优快云博客
判断方式2:containsString
遍历dataSource,对每个对象