2011-02-09 9 views
7

Estoy tratando de importar un csv creado por Filemaker y copiado en mi dispositivo mediante el uso compartido de archivos de iTunes. Estoy atrapado en lo que debería ser un paso directo. Simplemente no puedo ver dónde me estoy equivocando. Intenté el método alternativo y estableciendo la codificación UTF8. También intenté exportar desde filemaker como xml UTF8, y también intenté eliminar la aplicación del teléfono y volver a ejecutarla. No parece leer la codificación incluso si la especifico. El siguiente código me da esta salida de consola.stringWithContentsOfFile: usedEncoding: error: does not

archivo existe Importación (nulo) error de dominio = Código NSCocoaErrorDomain = 264

-(void)importDatabase { 
NSString *importString; 
NSError *error; 
NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:[documentsDirectoryPath stringByAppendingString:@"/iPhone.csv"]]) { 
    NSLog(@" File exists"); 
    NSStringEncoding encoding; 
    importString = [NSString stringWithContentsOfFile:[documentsDirectoryPath stringByAppendingString:@"/iPhone.csv"] usedEncoding:&encoding error:&error]; 
NSLog(@"Import %@ %@ ",importString, error); 
} else { 
    NSLog(@" File doesn't exist"); 
} 

}

Respuesta

7

Desde el encabezado "La operación no pudo completarse (error de cacao 264.).":

NSFileReadUnknownStringEncodingError = 264,   // Read error (string encoding of file contents could not be determined) 

Intenta decirle a Foundation qué es la codificación, ya que sabes cuál es la codificación.

importString = [NSString stringWithContentsOfFile: blah encoding: NSUTF8StringEncoding error: &error]; 
+1

Sí. Yo pienso que éste es el problema. No sabe cuál es la codificación. De hecho, estaba ignorando las 2 advertencias a continuación. Parece que faltan archivos en 4.2.1. Los reemplacé de 4.2 y ahora funciona mágicamente. Hay otras publicaciones que sugieren que esto fue un descuido de Apple. advertencia: no se pueden leer símbolos para /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148) /Symbols/usr/lib/info/dns.so (archivo no encontrado). No se pueden leer símbolos para /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148) /Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (archivo no encontrado). – codeDoctor

-9

Creo que sólo se olvidó [NSString alloc] porque esto funciona para mí:

NSString *fileComponents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
0

tuve un problema similar, y resultó que el archivo fue codificado en un código extraño página (con> 128 caracteres), en lugar de UTF-8. Al final, nunca descubrí cómo se codificó originalmente ...

Cuestiones relacionadas