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];
}
}
Ответы
Ответ 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 {
...
}