How do i compare a website result with a predicted result.
@"document.getElementsByTagName('body')[0].outerHTML"
is predicted to contain:
<body>OK</body>
But i always get an error saying that they don't match. I used this code below to compare them:
if (webresult == cmp){
then it shows an alert saying success. Or in else it'll say error. It always goes to else. Heres the code block, Please help.
- (IBAction)displayresult:(id)sender {
webresult = [webview2 stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].outerHTML"];
NSString *cmp = [[NSString alloc] initWithFormat:@"<body>OK</body&开发者_开发技巧gt;"];
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];
}
}
I assume that webresult
is an NSString
. If that is the case, then you want to use:
if ([webresult isEqualToString:cmp]) {
instead of:
if (webresult == cmp) {
as the above method checks if the strings are equal character by character, whereas the bottom method checks if the two strings are the same pointer.
if (webresult == cmp)
Here, ==
checks whether webresult, cmp
are pointing to the same reference or not. You should instead compare value of the object by using NSString::isEqualToString.
if ( [ cmp isEqualToString:webresult ]) {
// ..
}else {
// ..
}
Note that isEqualToString
is a good option because it returns boolean value.
We cannot comapre the strings with ==
We have to use isEqualToString:
if([str1 isEqualToString:str2])
{
}
else
{
}
When comparing strings you need to use isEqualToString:
if ([cmp isEqualToString:webresult]) {
...
} else {
...
}
for Swift 4.0:
if str1==str2 {
//both string are equal
}
else {
//do something expression not true
}
for Objective-C:
if ([str1 isEqualToString:str2]) {
//both string are equal
}
else {
//do something expression not true
}
精彩评论