开发者

xcode iOS compare strings

开发者 https://www.devze.com 2023-03-25 22:30 出处:网络
How do i compare a website result with a predicted result. @\"document.getElementsByTagName(\'body\')[0].outerHTML\"

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&开发者_开发技巧gt;"];

    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];
}
}


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.


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.


We cannot comapre the strings with ==
We have to use isEqualToString:

if([str1 isEqualToString:str2])
{
}
else
{
}


When comparing strings you need to use isEqualToString:

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


for Swift 4.0:

if str1==str2 {
    //both string are equal 
}

else {
    //do something expression not true 
}

for Objective-C:

if ([str1 isEqualToString:str2]) {
    //both string are equal 
}

else {
    //do something expression not true 
}
0

精彩评论

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