Objective-C Language
Subscripting
Zoeken…
Subscripten met NSArray
Subscripten kunnen worden gebruikt om het ophalen en instellen van elementen in een array te vereenvoudigen. Gegeven de volgende array
NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];
Deze lijn
[fruit objectAtIndex: 1];
Kan worden vervangen door
fruit[1];
Ze kunnen ook worden gebruikt om een element in een veranderlijke array in te stellen.
NSMutableArray *fruit = [@[@"Apples", @"Bananas", @"Cherries"] mutableCopy];
fruit[1] = @"Blueberries";
NSLog(@"%@", fruit[1]); //Blueberries
Als de index van het subscript gelijk is aan het aantal van de array, wordt het element aan de array toegevoegd.
Herhaalde subscripts kunnen worden gebruikt om toegang te krijgen tot elementen van geneste arrays.
NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];
NSArray *vegetables = @[@"Avocado", @"Beans", @"Carrots"];
NSArray *produce = @[fruit, vegetables];
NSLog(@"%@", produce[0][1]); //Bananas
Subscripten met NSDictionary
Subscripten kunnen ook worden gebruikt met NSDictionary en NSMutableDictionary. De volgende code:
NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
[myDictionary setObject:@"Baz" forKey:@"Foo"];
NSLog(@"%@", [myDictionary objectForKey:@"Foo"]); // Baz
Kan worden ingekort tot:
NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
myDictionary[@"Foo"] = @"Baz";
NSLog(@"%@", myDictionary[@"Foo"]); // Baz
Aangepast abonnement
U kunt abonnementen toevoegen aan uw eigen klassen door de vereiste methoden te implementeren.
Voor geïndexeerde subscripting (zoals arrays):
- (id)objectAtIndexedSubscript:(NSUInteger)idx
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx
Voor ingetoetste abonnementen (zoals woordenboeken):
- (id)objectForKeyedSubscript:(id)key
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key