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 № 1Im 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 NSDictionary
Setzen 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:
.