/ / Stellen Sie den Wert in einem NSDictionary wieder her - object-c

Stellen Sie den Wert in einem NSDictionary wieder her - objective-c

Ich möchte die in einem NSDictionary enthaltenen Werte wiederherstellen. Ich mache das:

MyCommon *pCommon = [MyCommon Singleton];
NSArray *result = pCommon.res; //res is define and retain in common.m. This is the array.
NSDictionary *dataItem = [result objectAtIndex:????];

Ich weiß nicht, was ich setzen kann, um die ????

Vielen Dank

Antworten:

2 für die Antwort № 1

Im Gegensatz zu anderen Sprachen unterscheidet Objective-C zwischen Arrays und Wörterbüchern.

Ein Array ist eine nach Nummer indizierte Sammlung. Ein Wörterbuch ist eine von Objekten indizierte Sammlung (normalerweise Zeichenfolgen, kann aber auch andere Typen sein).

Darüber hinaus unterscheidet Objective-C zwischen veränderlichen und unveränderlichen Arrays und Wörterbüchern. NSArray und NSDictionary kann nicht geändert werden, nachdem sie erstellt wurden. Wenn Sie Ihrer Sammlung Objekte hinzufügen möchten, verwenden Sie NSMutableArray und NSMutableDictionary stattdessen.

NSArray * myArray = [[NSArray alloc] initWithObjects: @"text1", @"text2", @"text3", nil];
// you can then access a member by using:
NSString * text = [myArray objectAtIndex: 0];

NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
// add an object
[myDict setObject:@"text1" forKey:@"key1"];
[myDict setObject:@"text2" forKey:@"key2"];
// you can retrieve objects using:
text = [myDict objectForKey: @"key1"];

[myArray release];
[myDict release];

0 für die Antwort № 2

Gut, result ist ein NSArray, nicht ein NSDictionarySetzen Sie also einfach den Index des Elements, an dem Sie interessiert sind. Arrays werden durch ganze Zahlen von Null indiziert.

Für Ihren Fall result ist ein NSDictionary und nicht ein NSArray, benutze die objectForKey: Methode statt objectAtIndex:.