Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS是匹配文本最有效的方法_Ios_Validation_Search - Fatal编程技术网

iOS是匹配文本最有效的方法

iOS是匹配文本最有效的方法,ios,validation,search,Ios,Validation,Search,我正在开发一个应用程序,根据5000行列表验证用户输入。-i、 e.列表中存在与输入的名称匹配的名称 最有效、最快捷的方法是什么?我是否应该将文本列表转换为plist,然后通过检查进行验证 谢谢。为每个现有字符串执行[input isEqualToString:existingString]将非常缓慢 一个快速的方法是将现有条目作为键保存到字典中,并存储一些值。值是什么并不重要,关键是您可以尝试使用输入从字典中获取值 if([existingEntriesDictionary objectFor

我正在开发一个应用程序,根据5000行列表验证用户输入。-i、 e.列表中存在与输入的名称匹配的名称

最有效、最快捷的方法是什么?我是否应该将文本列表转换为plist,然后通过检查进行验证


谢谢。

为每个现有字符串执行
[input isEqualToString:existingString]
将非常缓慢

一个快速的方法是将现有条目作为键保存到字典中,并存储一些值。值是什么并不重要,关键是您可以尝试使用输入从字典中获取值

if([existingEntriesDictionary objectForKey:input] != nil)
{
    // entry is found!
}
else
{
    // doesn't exist
}

如果你得到了什么,它就存在了。如果得到nil,它就不存在。

可能是一个正则表达式?将字符串放在一个集合中,看看集合中是否包含文本。“非常慢”是一个相对的概念。如果您只有200个字符串要测试,并且您只在用户提交表单时进行测试,那么我敢打赌用户永远不会注意到任何东西。不过我同意你的回答,使用字典应该快一点:)没错,一切都是相对的。我的第一个iOS应用程序使用了拼字游戏字典,我也遇到了类似的问题。267000个单词让快速完成这项任务变得非常重要!好吧,我算错了。我实际上有5000行!我认为这个数字会导致用户注意到?在基准测试中,总是测试。我猜5000个单词会造成明显的延迟,但在5秒的时间里,这可能不是真的。为了记录在案,我曾经在iPhone 3G上strcmp()列出了约10000个字符串,这是可以接受的(花了约1秒)。当然,今天的iphone速度要快得多……你肯定应该先尝试一种简单的方法,如果需要的话进行优化。