2012-01-24 17 views
8

Mi chiedevo quale codice potrei usare al posto di initWithContentsOfFile: come ho cercato qualcosa che non è deprecato ma non riesce a trovare nulla. Sto cercando di visualizzare un file HTML locale all'interno di una WebView, sotto è il codice:initWithContentsOfFile deprecato

- (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]; 

} 

e sto ottenendo un avvertimento dicendo che initWithContentsOfFile: è deprecato e vorrebbe sapere come aggiornarlo.

risposta

16

Prova questa:

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

Perfetto! Molte grazie! –

+0

è possibile fare riferimento a un file nel progetto in questo modo? Lo chiedo perché sto pensando di caricare un documento di aiuto da mostrare all'utente in questo modo. Se è così, come faccio a costruire il percorso? Se c'è un modo migliore, fammi sapere. –

+0

@VictorEngel Dai un'occhiata a 'NSBunlde'. –

0

Utilizzare l'inizializzatore più recente:

metodo [initWithContentsOfFile: encoding: error:] di NSString, dove è possibile ottenere un errore di utile passata di nuovo voi se ci sono problemi. Ho collegato la documentazione per te. Se non si conosce la codifica del file, è possibile utilizzare anche un altro metodo con il parametro usedEncoding.