Compare String( == and isEqualToString difference)

 

How do i compare a website result with a predicted result.

@"document.getElementsByTagName('body')[0].outerHTML"

is predicted to contain:

<body>OK</body>

But i always get an error saying that they don’t match. I used this code below to compare them:

if (webresult == cmp){

then it shows an alert saying success. Or in else it’ll say error. It always goes to else. Heres the code block, Please help.

- (IBAction)displayresult:(id)sender {
    webresult = [webview2 stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].outerHTML"];
    NSString *cmp = [[NSString alloc] initWithFormat:@"<body>OK</body>"];

    if (webresult == cmp) {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Logged in" message:@"Logged in, Proceeding to the game" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
       [alert show];
       [alert release];
   } else {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:webresult delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
    [alert show];
    [alert release];
}
}
asked Aug 4 ’11 at 4:20
   

3 Answers

I assume that webresult is an NSString. If that is the case, then you want to use:

if ([webresult isEqualToString:cmp]) {

instead of:

if (webresult == cmp) {

as the above method checks if the strings are equal character by character, whereas the bottom method checks if the two strings are the same pointer. Hope that helps!

answered Aug 4 ’11 at 4:32
msgambel
4,09521240
 
   
Thanks, That fixed it –  Tyler McMaster Aug 4 ’11 at 4:33
   
Great! Can you accept the answer then? –  msgambel Aug 4 ’11 at 4:35

 

if (webresult == cmp)

Here, == checks whether webresult, cmp are pointing to the same reference or not. You should instead compare value of the object by using NSString::isEqualToString.

 if ( [ cmp isEqualToString:webresult ]) {
   // ..
 }else {
   // ..
 }

Note that isEqualToString is a good option because it returns boolean value.

answered Aug 4 ’11 at 4:28
Mahesh
19.8k32656
 
   
Can i get an example of how to use that? –  Tyler McMaster Aug 4 ’11 at 4:31
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s