2012-03-19 18 views
5

Tengo un archivo que contiene un par de miles de palabras en líneas individuales. Necesito cargar todas estas palabras en elementos separados dentro de una matriz así que la primera palabra será Matriz [0], la segunda será Matriz [1] etc.iOS Leer líneas de archivos en la matriz

Encontré código de muestra en otro lugar pero Xcode 4.3 dice que está usando depreciado llamadas.

NSString *tmp; 
NSArray *lines; 
lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"] 
        componentsSeparatedByString:@"\n"]; 

NSEnumerator *nse = [lines objectEnumerator]; 

while(tmp = [nse nextObject]) { 
    NSLog(@"%@", tmp); 
} 

Respuesta

18

Sí, + (id)stringWithContentsOfFile:(NSString *)path ha quedado obsoleto.

Consulte la documentación de Apple para NSString

usar en su lugar + (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error

uso de la siguiente manera:

lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt" 
            encoding:NSUTF8StringEncoding 
             error:nil] 
      componentsSeparatedByString:@"\n"]; 

Actualización: - Gracias a JÖHNK

NSCharacterSet *newlineCharSet = [NSCharacterSet newlineCharacterSet]; 
NSString* fileContents = [NSString stringWithContentsOfFile:@"testFileReadLines.txt" 
                encoding:NSUTF8StringEncoding 
                 error:nil]; 
NSArray *lines = [fileContents componentsSeparatedByCharactersInSet:newlineCharSet]; 
+1

Para generalidad, debe usar 'componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]', viz .: 'NSString * contents = [NSString stringWithContentsOfFile: @" testFileReadLines.txt "codificación: NSUTF8StringEncoding error: nil]; NSArray * lines = [contents componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]]; '. – JohnK

1

Verificar this. Es posible que deba usar un método actualizado.

+3

Gracias por la ayuda. Dio a Aadhira la respuesta correcta para que fuera un poco más completa. – jskrwyk

Cuestiones relacionadas