2012-01-24 16 views
8

Me preguntaba qué código podría usar en lugar de initWithContentsOfFile: como he estado buscando algo que no está en desuso, pero no puedo encontrar nada. Estoy tratando de mostrar un archivo HTML local dentro de una vista web, a continuación es el código:initWithContentsOfFile Obsoleto

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
    NSURL *bundleUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
    NSString *html = [[NSString alloc] initWithContentsOfFile:htmlPath]; 
    [self.myWebView loadHTMLString:html baseURL:bundleUrl]; 

} 

Y yo estoy haciendo una advertencia diciendo que initWithContentsOfFile: es obsoleto y le gustaría saber cómo actualizar la misma.

Respuesta

16

Prueba esto:

NSError *error = nil; 
NSString *string = [[NSString alloc] initWithContentsOfFile:@"/path/to/file.txt" encoding:NSUTF8StringEncoding error:&error]; 
+2

perfecto! ¡Muchas gracias! –

+0

¿es posible hacer referencia a un archivo en el proyecto de esta manera? Lo pregunto porque estoy pensando en cargar un documento de ayuda para que se muestre al usuario de esta manera. Si es así, ¿cómo construyo el camino? Si hay una mejor manera, házmelo saber. –

+0

@VictorEngel Eche un vistazo a 'NSBunlde'. –

0

Utilice la nueva inicializador:

método de NSString [initWithContentsOfFile: encoding: error:], donde se puede obtener un error de utilidad pasa de nuevo a usted si hay algún problema. He vinculado la documentación por ti. Si no conoce la codificación del archivo, también puede usar otro método que tenga un parámetro usedEncoding.