Aggiungere sub chiave per plist di programmazione
-
19-09-2019 - |
Domanda
Qualcuno può aiutarmi aggiungo i bambini ad un plist?
Credo che voglio registrare un indice di righe dal plist e poi affermare che riga di indice per scrivere la chiave troppo. Non sono sicuro di come dire se la chiave sarà una stringa, dizionario o un array.
Il seguente è il codice da un'altra domanda su come aggiungere una chiave a root.
NSString *path = @"path/to/some/file";
NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:path] mutableCopy];
[plist setObject:@"foo" forKey:@"aKey"];
[plist writeToFile:path atomically:YES];
[plist release];
Qualsiasi aiuto sarebbe molto apprezzato:)
Soluzione
Nota: Ho ancora bisogno di aiuto, ma i progressi compiuti
.Il seguente codice aggiungerà un plist serie nome della voce "Hi" con i bambini: Articolo 0, test1 Articolo 1, test2
NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy];
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil];
[plist setObject:newArray forKey:@"Hi"];
[plist writeToFile:databasePath atomically:YES];
[plist release];
Credo che facendo una voce di dizionario funzionerebbe lo stesso come elemento dell'array. Io non sono ancora sicuro di come aggiungere interi in bambini però: /
Altri suggerimenti
Qui è Se si fa tutto nel modo seguente è possibile scrivere un plist. Dizionario -> array -> string Dizionario -> dizionario -> Dizionario -> Array -> string ecc ...
Ecco il codice che crea un dizionario "Riga" che contiene un "Hi" matrice contenente 2 stringhe di nome collo 0 e Voce 1 con i nomi "di prova 1 e 2 di prova.
NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy];
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
NSMutableDictionary *newDictionary = [[[NSMutableDictionary alloc] init] autorelease];
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil];
newDictionary = [NSDictionary dictionaryWithObject:newArray forKey:@"Hi"];
[plist setObject:newDictionary forKey:@"Row"];
[plist writeToFile:databasePath atomically:YES];
[plist release];
Questa è la volontà di crash se si tenta di scrivere un articolo in cui 1 esiste già. Qualcuno sa come I cn consegnerà le chiavi stringa (vale a dire collo 0, punto 1, ecc ...) un nome?
Credo che le chiavi di stringa nome non può cambiare unico modo per dare chiavi e oggetti contemporaneamente sarà utilizzando NSDictionary
[NSArray arrayWithObjects:dictionary1, dictionary2];
Spero che questo aiuti