xcode iOS比较字符串

rsaldnfx  于 2022-12-27  发布在  iOS
关注(0)|答案(5)|浏览(168)

我如何比较网站结果与预测结果。

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

预计包含:

<body>OK</body>

但是我总是得到一个错误说他们不匹配。我用下面的代码来比较他们:

if (webresult == cmp){

然后它会显示一个警告说成功。或者在else中它会说错误。它总是转到else。这是代码块,请帮助。

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

rggaifut1#

我假设webresult是一个NSString,如果是这样的话,那么你需要使用:

if ([webresult isEqualToString:cmp]) {

而不是:

if (webresult == cmp) {

因为上面的方法逐个字符地检查字符串是否相等,而底部的方法检查两个字符串是否是相同的指针。

gajydyqb

gajydyqb2#

if (webresult == cmp)

在这里,==检查webresult, cmp是否指向同一个引用。您应该使用NSString::isEqualToString比较对象的值。

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

注意,isEqualToString是一个很好的选项,因为它返回布尔值。

bjg7j2ky

bjg7j2ky3#

我们无法将字符串与==进行比较
我们必须使用isEqualToString:

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

1cosmwyk4#

比较字符串时,需要使用isEqualToString:

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

nfzehxib5#

对于Swift 4.0:

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

else {
    //do something expression not true 
}

对于Objective-C:

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

else {
    //do something expression not true 
}

相关问题