有没有更好的方法来处理此词典搜索?
|
我正在创建一个iPhone应用程序。我有一个.plist文件,其中包含单词词典(其中约180K)。
用户可以在其中输入一个textField的单词。在他输入时,我使用委托方法
textField:shouldChangeCharactersInRange:replacementString:
确保他只输入abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ。
当用户第一次点击textField时,我将加载一个名为finalWords
的NSMutableArray(在标头中声明,保留并合成),并带有.plist的内容(每个词都是一个NSString)。当用户输入字母时,我运行
-(void)filterWordsForString:(NSString *)string
{
NSRange *range;
for (int i=[finalWords count]-1 ; i >=0 ; i--)
{
range = [[finalWords objectAtIndex:i] rangeOfString:string];
if (range.location == NSNotFound)
{
[finalWords removeObjectAtIndex:i];
}
}
}
我的目标是在用户输入不属于真实单词的字符串时停止用户(根据我的词典)。该代码在某种意义上起作用,因为它可以减少用户输入时可能键入的单词。这样一来,他只要输入能使它变成单词的字母,便不允许输入该字母。另外,一旦完成了唯一的补全,我便继续用完成的单词填充textField。
问题是,起初这太慢了!第一个字母花费几秒钟,第二个字母花费不多。第三,速度有点合理。有没有办法可以大大加快此筛选过程?
谢谢。
没有找到相关结果
已邀请:
1 个回复
芳菱挨啡