Objective c 在NSMutableArray中搜索

Objective c 在NSMutableArray中搜索,objective-c,macos,cocoa,nstableview,nssearchfield,Objective C,Macos,Cocoa,Nstableview,Nssearchfield,我有一个NSMutableArray,它填充NSTableView。它包含字符串:狗、猫、鸭、牛、驼鹿、nil。我的NSTableView上方有一个搜索栏,希望在tableview中选择与我搜索的字符串(在搜索栏中)最匹配的项。有什么简单的方法可以做到这一点吗 您可以计算搜索字符串与表中字符串之间的距离度量。然后拾取具有最小距离值的图元 计算距离度量的一种方法是使用Levenshtein距离算法。可以找到一个实现。这对我来说很有效 也可以搜索部分匹配项: if ( [titleWord rang

我有一个
NSMutableArray
,它填充
NSTableView
。它包含字符串:
狗、猫、鸭、牛、驼鹿、nil
。我的NSTableView上方有一个搜索栏,希望在tableview中选择与我搜索的字符串(在搜索栏中)最匹配的项。有什么简单的方法可以做到这一点吗

您可以计算搜索字符串与表中字符串之间的距离度量。然后拾取具有最小距离值的图元

计算距离度量的一种方法是使用Levenshtein距离算法。可以找到一个实现。这对我来说很有效

也可以搜索部分匹配项:

if ( [titleWord rangeOfString:searchWord options:NSCaseInsensitiveSearch].length > 0 )
或者,如果要查找以搜索字符串开头的单词:

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

不确定,但这是一个自动完成的问题吗?第一步是:定义最接近的匹配是什么。例如,与“z”最接近的匹配是什么?与“dowk”最接近的匹配项?如何获取与
searchWord
最接近的字符串的索引?一旦在表中找到与搜索词最匹配的字符串,就可以使用NSMutableArray的
indexOfObject
方法。我是否将其放入类似for循环中?如何获取标题词?是的,可以使用for循环确定数组中与搜索词最匹配的字符串。