2009-09-29 15 views

Odpowiedz

136

pliki w " Folder zasobów " to w rzeczywistości zawartość pakietu aplikacji. Najpierw musisz pobrać ścieżkę do pliku w pakiecie aplikacji.

NSString* path = [[NSBundle mainBundle] pathForResource:@"filename" 
               ofType:@"txt"]; 

Następnie załadowanie zawartości do NSString jest jeszcze łatwiejsze.

NSString* content = [NSString stringWithContentsOfFile:path 
               encoding:NSUTF8StringEncoding 
               error:NULL]; 

Jako bonus można mieć różne wersje zlokalizowane na filename.txt i ten kod pobiera plik aktualnie wybranego języka poprawnie.

+0

Kodowanie nie działa dla wszystkich plików. Jeśli utworzysz plik tekstowy w systemie Windows posiadający symbol euro z kodowaniem ANSI, symbol euro zostanie przekonwertowany na inny symbol za pomocą powyższego kodu. Czy istnieje ogólny sposób obsługi całego zestawu znaków za pomocą jednego kodowania? –

8

Pierwszą rzeczą, którą chcesz zrobić, to ścieżkę do pliku tekstowego, który chcesz przeczytać. Ponieważ znajduje się w twoim folderze zasobów, zakładam, że kopiujesz go do głównego pakietu aplikacji. Można uzyskać ścieżkę do pliku w głównej wiązki za pomocą NSBundle na pathForResource:ofType:

NSBundle *mainBundle = [NSBundle mainBundle]; 
NSString *filePath = [mainBundle pathForResource:@"filename" ofType:@"txt"];

Następnie można odczytać pliku w tej ścieżce do NSString bezpośrednio przy użyciu initWithContentsOfFile:usedEncoding:error:

NSStringEncoding encoding; 
NSError *error; 
NSString *fileContents = [[[NSString alloc] initWithContentsOfFile:filePath 
                 usedEncoding:&encoding 
                  error:&error] 
          autorelease];
Powiązane problemy