IPhone

2009-03-03 30 views
0

üzerinde HTTP istisnası işleme ile ilgili soru İstisnaı işlemek için bir yöntem eklemek çalışıyorum, ancak program bir AlertView açılır yerine çöküyor.IPhone

-(void)connect:(NSString *)strURL 
{ 
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:strURL] 
                  cachePolicy:NSURLRequestUseProtocolCachePolicy  
                  timeoutInterval:60.0]; 

    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
    if (theConnection) 
    { 
     // receivedData is declared as a method instance elsewhere 
     receivedData = [[NSMutableData data] retain]; 
    } 
    else 
    { 
     // inform the user that the download could not be made 
    } 

} 

2) ben eklemek yöntem veri almak ve dizeye conver:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    // append the new data to the receivedData 
    // receivedData is declared as a method instance elsewhere 
    [receivedData appendData:data]; 
    ReturnStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
} 

3) Ben istisna kolu yöntemi ekleyin:

1) Ben bağlantı kurmak


-(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error { 

    UIAlertView *errorAlert = [[UIAlertView alloc] 
           initWithTitle: [error localizedDescription] 
           message: [error localizedFailureReason] 
           delegate:self 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil]; 
    [errorAlert show]; 
} 

StrURL'yi yanlış bir URL'ye değiştirdikten sonra, program çöküyor. AlertView'ın neden açılmadığına dair herhangi bir fikir var mı?

+0

ile hata ayıklayıcı program sayesinde çalışan denediniz mi? 'didFailWithError'ınız aranıyor mu? Hata nedir? –

+0

Hayır, 'didFailWithError' yöntemi çağrılmadı. Bağlanmak için yanlış bir URL kullanıyorum, bu yüzden neden çağrılmadığını anlamıyorum. –

cevap

3

error handling that I've got in this file'a bakın. URL'yi geçersiz bir URL olarak ayarlarsanız, (örneğimde) güzel bir iletişim hata iletisiyle birlikte gelir. Emin olmak için denedim. bağlantılı dosyadaki

İlgili kodudur:

-(void) connection:(NSURLConnection *)connection 
    didFailWithError: (NSError *)error { 
    UIAlertView *errorAlert = [[UIAlertView alloc] 
       initWithTitle: [error localizedDescription] 
       message: [error localizedFailureReason] 
       delegate:nil 
       cancelButtonTitle:@"OK" 
       otherButtonTitles:nil]; 
    [errorAlert show]; 
    [errorAlert release]; 
    [activityIndicator stopAnimating]; 
    NSLog (@"Connection Failed with Error"); 
} 
+0

Teşekkürler. Şimdi sorunu buluyorum. 60 saniye zaman aşımı aralığını ayarladığımda uyarıyı görmek için 60 saniye beklemeliyim. –