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循环确定数组中与搜索词最匹配的字符串。