2010-12-13 4 views
0

Я пытаюсь разобрать HTML-контент с помощью HTMLParser и с его помощью Я пытаюсь запустить UIAlertView, приложение работает нормально, но не запускает UIAlertView.UIAlertView не запускается

Вот код:

- (IBAction) loginButton: (id) sender 
{ 

// Create the username and password string. 
// username and password are the username and password to login with 
NSString *postString = [[NSString alloc] initWithFormat:@"username=%@&password=%@",userName, password]; 
// Package the string in an NSData object 
NSData *requestData = [postString dataUsingEncoding:NSASCIIStringEncoding]; 

// Create the URL request 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://localhost/dologin.php"]]; // create the URL request 
[request setHTTPMethod: @"POST"]; // you're sending POST data 
[request setHTTPBody: requestData]; // apply the post data to be sent 

// Call the URL 
NSURLResponse *response; // holds the response from the server 
NSError *error; // holds any errors 
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error]; // call the URL 

/* If the response from the server is a web page, dataReturned will hold the string of the HTML returned. */ 

HTMLParser * parser = [[HTMLParser alloc] initWithData:returnData error:&error]; 

HTMLNode * bodyNode = [parser body]; 

NSArray * errorNodes = [bodyNode findChildTags:@"errorbox"]; 

for (HTMLNode * errorNode in errorNodes) { 
    if ([[errorNode getAttributeNamed:@"div class"] isEqualToString:@"errorbox"]){ 
     alertWithOkButton = [[UIAlertView alloc] initWithTitle:@"Status..." message:[NSString stringWithFormat:@"Invalid Access Info, try again"] delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil]; 
     [alertWithOkButton show]; 
     [alertWithOkButton release]; 
     //Login Failed 
    } 
} 

NSArray * spanNodes = [bodyNode findChildTags:@"clientarea.php?action=masspay"]; 

for (HTMLNode * spanNode in spanNodes) { 
    if ([[spanNode getAttributeNamed:@"action"] isEqualToString:@"clientarea.php?action=masspay"]){ 
     alertWithOkButton = [[UIAlertView alloc] initWithTitle:@"Status..." message:[NSString stringWithFormat:@"Login Accepted, redirecting to the main app screen. :)"] delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:@"Go",nil]; 
     [alertWithOkButton show]; 
     [alertWithOkButton release]; //Login Success 
    } 
} 

[parser release]; 

} 

ответ

0

Ваши AlertViews, кажется, правильно сформирован (хотя сюда сообщений, которые не нужны [NSString stringWithFormat:] вещи, так как вы на самом деле не что-либо форматирование - просто сообщение @ «ваше сообщение» в порядке).

Поскольку все в порядке, это говорит нам о том, что условия, которые могли бы вызвать их появление, на самом деле никогда не происходят. Либо ни одно из ваших сравнений isEqualToString не является истинным, либо оба errorNodes и spanNodes пустые или некоторые комбинации этих вещей.

Нажмите рядом с первым для инструкции и установите контрольную точку. Сборка и отладка и запуск программы до тех пор, пока она не достигнет точки останова. Теперь вы можете проверить и увидеть, что на самом деле содержат значения errorsNodes и spanNodes.

+0

Спасибо, проблема была в ошибкеNode. Возвращаемые данные не совпадали с ним, потому что я использовал неправильный тег. :П –

Смежные вопросы