Objective-C Language
NSDictionary
Sök…
Skapa
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
eller
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects
forKeys:keys];
eller med lämplig bokstavssyntax
NSDictionary *dict = @{@"key": @"value", @"nextKey": @"nextValue"};
NSDictionary till NSArray
NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
NSArray *copiedArray = myDictionary.copy;
Få nycklar:
NSArray *keys = [myDictionary allKeys];
Få värden:
NSArray *values = [myDictionary allValues];
NSDiktion till NSData
NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];
Resväg:
NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];
NSDiction till JSON
NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
NSMutableDictionary *mutableDictionary = [myDictionary mutableCopy];
NSData *data = [NSJSONSerialization dataWithJSONObject:myDictionary options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Blockbaserad uppräkning
Genom att räkna upp ordböcker kan du köra ett kodblock på varje ordlista nyckelvärde par med metoden enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block
Exempel:
NSDictionary stockSymbolsDictionary = @{
@"AAPL": @"Apple",
@"GOOGL": @"Alphabet",
@"MSFT": @"Microsoft",
@"AMZN": @"Amazon"
};
NSLog(@"Printing contents of dictionary via enumeration");
[stockSymbolsDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"Key: %@, Value: %@", key, obj);
}];
Snabb uppräkning
NSDictionary
kan räknas upp med snabb uppräkning, precis som andra samlingstyper:
NSDictionary stockSymbolsDictionary = @{
@"AAPL": @"Apple",
@"GOOGL": @"Alphabet",
@"MSFT": @"Microsoft",
@"AMZN": @"Amazon"
};
for (id key in stockSymbolsDictionary)
{
id value = dictionary[key];
NSLog(@"Key: %@, Value: %@", key, value);
}
Eftersom NSDictionary
är i sig ordenade, är inte ordningen på nycklar som i for-loop garanterad.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow