2011-08-04 41 views
33

如何比較網站結果和預測結果。xcode iOS比較字符串

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

預測包含:

<body>OK</body> 

但我總是得到一個錯誤,說他們不匹配。我用下面的代碼來比較它們:

if (webresult == cmp){ 

然後它顯示一個警告說成功。否則,它會說錯誤。它總是去其他地方。繼承人的代碼塊,請幫助。

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

回答

101

我假設webresultNSString。如果是這樣的話,那麼你要使用:

if ([webresult isEqualToString:cmp]) { 

代替:

if (webresult == cmp) { 

如上述方法檢查字符串相等字符爲單位,而底部的方法檢查兩個字符串是相同的指針。希望有所幫助!

+0

謝謝,修好了吧 –

+0

太好了!你能接受答案嗎? – msgambel

8
if (webresult == cmp) 

這裏,==檢查是否webresult, cmp都指向相同的參考或沒有。您應該改爲使用NSString::isEqualToString.

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

注意isEqualToString是一個很好的選擇,因爲它返回布爾值比較對象的值。

+0

我可以得到一個如何使用它的例子嗎? –

3

我們不能==
comapre琴絃我們必須使用isEqualToString:

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

比較字符串時,你需要使用 isEqualToString:

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

的雨燕4.0

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

else{ 
    //do something expression not true 

    }