2012-01-24 11 views
8

Zastanawiam się, jaki kod mógłbym użyć zamiast initWithContentsOfFile: ponieważ szukałem czegoś, co nie jest przestarzałe, ale nie może znaleźć niczego. Próbuję wyświetlić lokalny plik HTML w obrębie WebView, poniżej jest kod:initWithContentsOfFile Przestarzały

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

} 

A ja dostaję ostrzeżenie mówiące, że initWithContentsOfFile: jest przestarzała i chcieliby wiedzieć, jak go zaktualizować.

Odpowiedz

16

Spróbuj:

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

Perfect! Wielkie dzięki! –

+0

Czy można w ten sposób odwoływać się do pliku w projekcie? Pytam, ponieważ myślę o załadowaniu dokumentu pomocy, który będzie wyświetlany użytkownikowi w ten sposób. Jeśli tak, jak utworzyć ścieżkę? Jeśli jest lepszy sposób, daj mi znać. –

+0

@VictorEngel Spójrz na 'NSBunlde'. –

0

Użyj nowszej inicjator:

NSString za [initWithContentsOfFile: encoding: error:] metodę, gdzie można uzyskać użyteczną błąd przekazany z powrotem do Ciebie, jeśli są jakieś problemy. Połączyłem dokumentację z tobą. Jeśli nie znasz kodowania pliku, możesz również użyć innej metody z parametrem usedEncoding.

Powiązane problemy