Anhängen von NSDictionary an ein anderes NSDictionary

87

Ich habe eins NSDictionaryund es lädt auf UITableView. Wenn ein Benutzer mehr und mehr scrollt, rufe ich die API auf und rufe neue Daten ab. Diese Daten liegen wieder in Form eines vor NSDictionary. Ist es möglich, das Neue NSDictionaryzum bestehenden hinzuzufügen ?

Slonkar
quelle

Antworten:

205

Du suchst diesen Kerl:

[NSMutableDictionary addEntriesFromDictionary:]

Stellen Sie sicher, dass Ihr UITableViewWörterbuch ein ist NSMutableDictionary!

Überprüfen Sie es hier

MGA
quelle
9
Ja, aber warum möchten Sie doppelte Schlüsseleinträge in einem Wörterbuch?
Johan Karlsson
2
Was ich will, ist -[NSDictionary dictionaryByAddEntriesFromDictionary:]jedoch, dass es keine solche Methode gibt NSDictionary.
DawnSong
Offensichtlich handelt es sich nur um die Gewerkschaftsoperation von Wörterbüchern, nicht um doppelte Einträge. @ JohanKarlsson
DawnSong
3
@DawnSong Ich würde nur eine Kategorie in NSDictionary erstellen, wenn ich Sie mit der folgenden Methode wäre: + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } Entschuldigen Sie die Formatierungsprobleme. StackOverflow erlaubt keine benutzerfreundliche mehrzeilige Code-Formatierung in Kommentaren.
BigSauce
Ich denke, die eigentliche Frage ist, wie man dies OHNE veränderbare Zwischenobjekte macht. Der Hauptvorteil für so etwas (das zum Beispiel für NSString existiert) ist die Thread-Sicherheit.
Motti Shneor
14

Verwenden Sie NSMutableDictionary addEntriesFromDictionary, um die beiden Wörterbücher einem neuen veränderlichen Wörterbuch hinzuzufügen. Sie können dann ein NSDictionary aus dem veränderlichen erstellen, es ist jedoch normalerweise nicht erforderlich, ein nicht veränderbares Wörterbuch zu haben.

Hot Licks
quelle
1

Ist Ihr NSDictionary voll mit anderen NSDictionaries? Es hört sich so an, als würden Sie ein NSMutableArray benötigen, zu dem Sie am Ende NSDictionaries hinzufügen könnten. Angenommen, Sie können den eingehenden Datenfluss steuern und laufen nicht Gefahr, dass sich Duplikate in Ihrem Array befinden. Sie könnten die Daten sicherlich anhängen.

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

Ohne zu sehen, wie Sie es implementieren, kann ich keine detaillierteren Codebeispiele bereitstellen. Das Anhängen von Elementen ist einfach, kann jedoch nur mit veränderlichen Versionen von Arrays oder Wörterbüchern durchgeführt werden. Hoffe das hilft ein wenig.

Bill Burgess
quelle