我已经设置了一个充满单词作为对象的数组。我正在尝试比较用户在uitextfield中输入的内容与数组中的对象,以查看它们是否匹配。
我在其中一个委托方法中捕获了指向uitextview的指针,但是我无法将文本字段内容与数组中的对象进行比较。我假设这是因为一个是字符串,一个是数组对象?我是否需要以某种方式投射其中一个变量?
由于
马丁
答案 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
来测试字符串之间的相等性,而不是==
;后者通常会工作,但偶尔会破坏。这是因为==
仅测试两个指针是否指向相同的内存位置,而在不同的内存位置可能有两个相同字符串的副本。