Pregunta

Tengo esta cadena:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Secciones</key>
    <array>
        <dict>
            <key>Uid</key>
            <integer>1</integer>
            <key>DateInsert</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>DateModify</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>Name</key>
            <string>Seccion 1</string>
            <key>Description</key>
            <string>Esta es la sección 1.</string>
        </dict>
        <dict>
            <key>Uid</key>
            <integer>2</integer>
            <key>DateInsert</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>DateModify</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>Name</key>
            <string>Seccion 2</string>
            <key>Description</key>
            <string>Esta es la sección 2.</string>
        </dict>
        <dict>
            <key>Uid</key>
            <integer>3</integer>
            <key>DateInsert</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>DateModify</key>
            <date>3911-04-15T09:20:40Z</date>
            <key>Name</key>
            <string>Seccion 3</string>
            <key>Description</key>
            <string>Esta es la sección 3.</string>
        </dict>
    </array>
</dict>
</plist>

Quiero crear un archivo Plist con este contenido. He intentado con esto:

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];

NSString *fileName = [documentsDirectory stringByAppendingPathComponent: @"sec.plist"];

NSLog(@"%@",documentsDirectory);
NSLog(@"%@",fileName);

//n is my string 
[n writeToFile:fileName 
    atomically:NO           
      encoding:NSStringEncodingConversionAllowLossy
         error:nil];

mi espectáculo de consola:

2011-09-08 18:26:59.999 Catalogo-V1[1071:207] /Users/.../Library/Application Support/iPhone Simulator/4.3/Applications/6D96FC16-D6CB-4A03-A0F5-38A0C0C473C7/Documents

2011-09-08 18:27:00.000 Catalogo-V1[1071:207] /Users/.../Library/Application Support/iPhone Simulator/4.3/Applications/6D96FC16-D6CB-4A03-A0F5-38A0C0C473C7/Documents/sec.plist

Pero no cree ningún archivo.

¿Fue útil?

Solución

  • Utilizar el error parámetro de writeToFile:atomically:encoding:error: Método Para retener el error devuelto por la llamada, esto ayudará a depurar

  • Usar NSUTF8StringEncoding en vez de NSStringEncodingConversionAllowLossy (¡Lo cual no es una codificación!)

  • Prefiere usar el NSPropertyListSerialization Clase para manipular la serialización de los archivos PLIST si es posible.

  • Es posible que encuentre útil para leer el Guía de programación de la lista de propiedades también

Otros consejos

NSStringEncodingConversionAllowLossy no es una codificación, usa algo como NSUTF8StringEncoding en cambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top