开发者

Reading a text field and comparing to an array object?

I have setup an array full of words as objects. I am trying then trying to compare what the user enters in a uitextfield to an object in the array to see if they match.

I have captured a pointer to the uitextview in one of the delegate methods, however I cannot compare the text field contents to the object in the array. I assume that this is because one is a string and one is an array object ? Do I need to cast one of the 开发者_运维百科variables somehow ?

Thanks

Martin


Assuming you want to test whether the user's input matches any member of your array, you should do something like this:

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

Notes:

  • We are comparing the input string against each member of the array in turn. This gives an explicit meaning to the idea of matching a string against an array.

  • When we find a matching string, we set the flag wordFound to YES and then stop searching (using the break statement). If no match is found, the wordFound flag remains at its original value of NO.

  • Always use isEqual to test equality between strings, never ==; the later will usually work, but then break occasionally. This is because == only tests whether the two pointers point to the same memory location, whereas you might have two copies of an identical string in different memory locations.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜