Objective-C Language
Subscripting
Sök…
Abonnemang med NSArray
Abonnemang kan användas för att förenkla hämtning och inställning av element i en matris. Med tanke på följande matris
NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];
Den här linjen
[fruit objectAtIndex: 1];
Kan ersättas av
fruit[1];
De kan också användas för att ställa in ett element i en muterbar matris.
NSMutableArray *fruit = [@[@"Apples", @"Bananas", @"Cherries"] mutableCopy];
fruit[1] = @"Blueberries";
NSLog(@"%@", fruit[1]); //Blueberries
Om indexet för prenumerationen är lika med arrayens antal kommer elementet att läggas till i matrisen.
Upprepade abonnemang kan användas för att få åtkomst till element i kapslade matriser.
NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];
NSArray *vegetables = @[@"Avocado", @"Beans", @"Carrots"];
NSArray *produce = @[fruit, vegetables];
NSLog(@"%@", produce[0][1]); //Bananas
Abonnemang med NSDiction
Abonnemang kan också användas med NSDiction och NSMutableDiction. Följande kod:
NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
[myDictionary setObject:@"Baz" forKey:@"Foo"];
NSLog(@"%@", [myDictionary objectForKey:@"Foo"]); // Baz
Kan förkortas till:
NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
myDictionary[@"Foo"] = @"Baz";
NSLog(@"%@", myDictionary[@"Foo"]); // Baz
Anpassad prenumeration
Du kan lägga till prenumerationer till dina egna klasser genom att använda de metoder som krävs.
För indexerad prenumeration (som matriser):
- (id)objectAtIndexedSubscript:(NSUInteger)idx
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx
För tangentbaserad prenumeration (som ordböcker):
- (id)objectForKeyedSubscript:(id)key
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow