在NSMutableArray中搜索

时间:2015-05-16 16:32:06

标签: objective-c macos cocoa nstableview nssearchfield

我有NSMutableArray填充NSTableView。它包含字符串:dog, cat, duck, cow, moose, nil。我在NSTableView上方有一个搜索栏,想要在tableview中选择与我搜索的字符串(在搜索栏中)最匹配的项目。有没有简单的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以计算搜索字符串与表格中字符串之间的距离度量。然后选择距离值最小的元素。

计算距离测量的一种方法是使用Levenshtein距离算法。可以找到一个实现here。它适用于我的情况。

也可以搜索部分匹配:

if ( [titleWord rangeOfString:searchWord options:NSCaseInsensitiveSearch].length > 0 )

或者,如果您想找到以搜索字符串开头的单词:

if ( [titleWord.lowercaseString hasPrefix:searchWord.lowercaseString] )