读取文本字段并与数组对象进行比较?

时间:2010-09-07 18:30:01

标签: objective-c xcode sdk

我已经设置了一个充满单词作为对象的数组。我正在尝试比较用户在uitextfield中输入的内容与数组中的对象,以查看它们是否匹配。

我在其中一个委托方法中捕获了指向uitextview的指针,但是我无法将文本字段内容与数组中的对象进行比较。我假设这是因为一个是字符串,一个是数组对象?我是否需要以某种方式投射其中一个变量?

由于

马丁

1 个答案:

答案 0 :(得分:0)

假设您要测试用户的输入是否与数组的任何成员匹配,您应该执行以下操作:

NSString *input = textField.text;
BOOL wordFound = NO;
for(NSString *candidate in self.possibleWordsArray) { 
    if( [input isEqual:candidate] ) {
        wordFound = YES;
        break;
    }
}
if(wordFound) {
    ...
}
else {
    ...
}

注意:

  • 我们依次将输入字符串与数组的每个成员进行比较。这为将字符串与数组匹配的想法赋予了明确的含义。

  • 当我们找到匹配的字符串时,我们将标记wordFound设置为YES,然后停止搜索(使用break语句)。如果未找到匹配项,则wordFound标记保持其原始值NO

  • 始终使用isEqual来测试字符串之间的相等性,而不是==;后者通常会工作,但偶尔会破坏。这是因为==仅测试两个指针是否指向相同的内存位置,而在不同的内存位置可能有两个相同字符串的副本。