xcode iOS比较字符串

Tyl*_*ter 33 xcode ios

如何将网站结果与预测结果进行比较.

@"document.getElementsByTagName('body')[0].outerHTML"
Run Code Online (Sandbox Code Playgroud)

预计包含:

<body>OK</body>
Run Code Online (Sandbox Code Playgroud)

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

if (webresult == cmp){
Run Code Online (Sandbox Code Playgroud)

然后它显示一个警告说成功.或者在其他地方它会说错误.它总是走向别的.下面是代码块,请帮忙.

- (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];
}
}
Run Code Online (Sandbox Code Playgroud)

msg*_*bel 102

我认为那webresult是一个NSString.如果是这种情况,那么你想使用:

if ([webresult isEqualToString:cmp]) {
Run Code Online (Sandbox Code Playgroud)

代替:

if (webresult == cmp) {
Run Code Online (Sandbox Code Playgroud)

因为上面的方法检查字符串是否逐个字符,而bottom方法检查两个字符串是否是相同的指针.希望有所帮助!


Mah*_*esh 9

if (webresult == cmp)
Run Code Online (Sandbox Code Playgroud)

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

 if ( [ cmp isEqualToString:webresult ]) {
   // ..
 }else {
   // ..
 }
Run Code Online (Sandbox Code Playgroud)

请注意,这isEqualToString是一个很好的选择,因为它返回布尔值.