Подтвердить что ты не робот

Xcode iOS сравнить строки

Как сравнить результат веб-сайта с прогнозируемым результатом.

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

как ожидается, будет содержать:

<body>OK</body>

Но я всегда получаю сообщение о том, что они не совпадают. Я использовал этот код ниже для сравнения:

if (webresult == cmp){

то он показывает предупреждение о том, что успех. Или иначе он скажет ошибку. Это всегда идет к другому. Heres блок кода, пожалуйста, помогите.

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

Ответ 1

Я предполагаю, что webresult является NSString. Если это так, то вы хотите использовать:

if ([webresult isEqualToString:cmp]) {

вместо:

if (webresult == cmp) {

поскольку указанный выше метод проверяет, являются ли строки равными по характеру символам, тогда как нижний метод проверяет, являются ли две строки одним и тем же указателем. Надеюсь, что это поможет!

Ответ 2

if (webresult == cmp)

Здесь == проверяет, указывают ли webresult, cmp на ту же ссылку или нет. Вместо этого вы должны сравнить значение объекта с помощью NSString:: isEqualToString.

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

Обратите внимание, что isEqualToString является хорошим вариантом, потому что он возвращает логическое значение.

Ответ 3

Мы не можем сопоставить строки с ==
Мы должны использовать isEqualToString:

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

Ответ 4

При сравнении строк вам нужно использовать isEqualToString:

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