Domanda

La writeToFile: atomicamente, aggiungere i dati a un .plist esistente? E 'possibile modificare un valore in un .plist? Qualora l'applicazione essere ricompilato per entrare in vigore il cambiamento?

Ho una lista .plist personalizzato nella mia app. La struttura è come qui sotto:

<array>
<dict>
    <key>Title</key>
    <string>MyTitle</string>
    <key>Measurement</key>
    <dict>
        <key>prop1</key>
        <real>28.86392</real>
        <key>prop2</key>
        <real>75.12451</real>
    </dict>
    <key>Distance</key>
    <dict>
        <key>prop3</key>
        <real>37.49229</real>
        <key>prop4</key>
        <real>58.64502</real>
    </dict>
</dict>
</array>

Il tag array contiene più elementi con stessa struttura. Ho bisogno di aggiungere elementi alla .plist esistente. È possibile? Riesco a scrivere un'UIView di fare proprio questo, in caso affermativo.

* MODIFICA - OK, ho solo cercato di WriteToFile sperando che atleast sovrascrivere se non aggiungere ad essa. Stranamente, il seguente codice seleziona percorso differente durante la lettura e la scrittura.

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

Il file .plist è nel mio progetto. Riesco a leggere da esso. Quando scrivo ad esso, si sta creando un file .plist e salvandolo nella mia /users/.../library/! Per qualcuno questo ha senso?

È stato utile?

Soluzione

Parto dal presupposto che la plist read only che viene fornito con l'applicazione si presume - si trova all'interno del pacchetto app

.

Tutti gli aggiornamenti vengono memorizzati nella directory specifica dell'utente, in modo che ogni utente dovrebbe avere le proprie modifiche specifiche.

Altri suggerimenti

Naturalmente è possibile creare e scrivere il file .plist. Con NSArray *arrayPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *userFile=[[arrayPath objectAtIndex:0] stringByAppendingString:@"/whatever.plist"];, è possibile scrivere / modificarlo.

Ma ho anche la stessa domanda:? Come faccio a modificare il valore nei confronti di un determinato tasto, invece di sovrascrivere l'intero file .plist

es. se voglio cambiare le "MyTitle" valore per la chiave "Title" in: <key>Title</key> <string>MyTitle</string> a "Girasole", come posso fare che dal codice

?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top