Swift实现模糊查询方法(NSPredicate)

只对目前需求进行记录,有问题请大神指出

对模型对象数据进行模糊搜索

例:搜索"ai"可搜到"shanghai", "alibaba", "iqiyiba"

let searchText = searchController.searchBar.text

    if searchText == nil || searchText == "" {

    return

}

var str: String = "*"

for character in searchText!.characters {

    str.append("\(character)*")

}

let preicate = NSPredicate.init(format: "stringName LIKE[c] %@", str)

self.searchDataSource = self.dataSource.filtered(using: preicate) as! NSMutableArray

/**

searchDataSource为搜索结果数据模型,dataSource为数据模型

1、使用LIKE谓词并且使用 "*a*i*" 格式,匹配搜索"ai"可搜到"shanghai", "alibaba"

2、使用CONTAINS谓词并且直接使用 "ai" 搜索,只可搜到"shanghai"

**/

你可能感兴趣的:(Swift实现模糊查询方法(NSPredicate))