uiwebview no carga la request incluso con delegate = self

He creado una class de NSObject e incluida, en el init i create a uiwebview, configuro el delegado y envío la request de carga.

Por alguna razón, webViewDidFinishLoad o didFailLoadWithError nunca se dispararon. No puedo entender por qué.

// // RXBTest.h #import <Foundation/Foundation.h> @interface RXBTest : NSObject <UIWebViewDelegate> @end 

 // RXBTest.m // pageTest #import "RXBTest.h" @implementation RXBTest - (id) init { if((self=[super init])){ UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; [webView setDelegate:self]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]]; } return self; } - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{ NSLog(@"ERROR LOADING WEBPAGE: %@", error); } - (void) webViewDidFinishLoad:(UIWebView*)webView { NSLog(@"finished"); } @end 

Alguien tiene alguna idea?

gracias rudi

Si está utilizando ARC, el problema es que su variable webView es local al método init y, por lo tanto, se desasigna antes de que la vista web termine de cargarse. Intente agregar la vista web como una variable de instancia:

 @interface RXBTest : NSObject <UIWebViewDelegate> { UIWebView* webView; } @end @implementation RXBTest - (id) init { if((self=[super init])){ webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; [webView setDelegate:self]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]]; } return self; } - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{ NSLog(@"ERROR LOADING WEBPAGE: %@", error); } - (void) webViewDidFinishLoad:(UIWebView*)webView { NSLog(@"finished"); } @end 

Si no está utilizando ARC, deberá recordar también liberar su object webView en el método dealloc.

Olvidó agregar esto en su file de encabezado (.h):

 #import <UIKit/UIWebView.h>