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.