2010-09-07 110 views
0

我已经设置了一个充满单词作为对象的数组。我尝试着将用户在uitextfield中输入的内容与数组中的对象进行比较,以查看它们是否匹配。读取文本字段并与数组对象进行比较?

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

感谢

马丁

回答

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来测试字符串之间的等同性,从来没有==;后者通常会工作,但偶尔会中断。这是因为==只测试两个指针是否指向相同的内存位置,而您可能在不同的内存位置有两个相同的字符串副本。

+0

嗨大卫。非常感谢您的帮助。在我读到你的答案之前,我做了这个工作如果([textField.text isEqualToString:keepName]){ \t \t \t \t Success = YES; \t \t [self shootTarget]; \t \t \t } \t \t 否则{[自gameFail]; \t \t \t } \t \t 返回YES; – GuybrushThreepwood 2010-09-10 12:54:15

相关问题