Aggiunta di NSDictionary ad altri NSDictionary


88

Ne ho uno NSDictionarye si carica UITableView. Se un utente scorre sempre di più, chiamo API e tiro nuovi dati. Questi dati hanno di nuovo la forma di un file NSDictionary. È possibile aggiungere il nuovo NSDictionarya quello esistente?

Risposte:


207

Stai cercando questo ragazzo:

[NSMutableDictionary addEntriesFromDictionary:]

Assicurati che il tuo UITableViewdizionario sia un NSMutableDictionary!

Controlla qui


9
Sì, ma perché vuoi duplicare le voci di chiavi in ​​un dizionario?
Johan Karlsson

2
Quello che voglio è -[NSDictionary dictionaryByAddEntriesFromDictionary:], tuttavia, che non esiste un tale metodo NSDictionary.
DawnSong

Ovviamente, è solo un'operazione di unione dei dizionari, non voci duplicate. @JohanKarlsson
DawnSong

3
@DawnSong creerei solo una categoria su NSDictionary se fossi in te con il seguente metodo: Ci + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } scusiamo per i problemi di formattazione. StackOverflow non consente la formattazione amichevole del codice multilinea nei commenti.
BigSauce

Penso che la vera domanda sia su come farlo SENZA oggetti mutabili intermedi. Il vantaggio principale di una cosa del genere (che esiste per NSString, ad esempio) è essere thread-safe.
Motti Shneor

14

Utilizzare NSMutableDictionary addEntriesFromDictionary per aggiungere i due dizionari a un nuovo dizionario modificabile. È quindi possibile creare un NSDictionary da quello modificabile, ma di solito non è necessario disporre di un dizionario non modificabile.


0

Il tuo NSDictionary è pieno di altri NSDictionaries? Sembra che tu abbia bisogno di un NSMutableArray a cui aggiungere NSDictionaries alla fine. Supponendo che tu possa controllare il flusso di dati in entrata e non corri il rischio di duplicati nel tuo array, potresti sicuramente aggiungere i dati.

NSMutableArray *array = [[NSMutableArray alloc] init];
arrayCount = [array count]; // check the item count
[array addObject:dictToAppend];

Senza vedere come lo stai implementando, non posso fornire esempi di codice più dettagliati. Aggiungere elementi è facile, ma sappi che può essere fatto solo con versioni modificabili di Arrays o Dizionari. Spero che questo aiuti un po '.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.