Buscar..


Subíndices con NSArray

Los subíndices se pueden usar para simplificar la recuperación y configuración de elementos en una matriz. Dada la siguiente matriz

NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];

Esta línea

[fruit objectAtIndex: 1];

Puede ser reemplazado por

fruit[1];

También se pueden usar para establecer un elemento en una matriz mutable.

NSMutableArray *fruit = [@[@"Apples", @"Bananas", @"Cherries"] mutableCopy];
fruit[1] = @"Blueberries";
NSLog(@"%@", fruit[1]); //Blueberries

Si el índice del subíndice es igual al conteo de la matriz, el elemento se agregará a la matriz.

Se pueden usar subíndices repetidos para acceder a elementos de matrices anidadas.

NSArray *fruit = @[@"Apples", @"Bananas", @"Cherries"];
NSArray *vegetables = @[@"Avocado", @"Beans", @"Carrots"];
NSArray *produce = @[fruit, vegetables];
    
NSLog(@"%@", produce[0][1]); //Bananas

Subíndices con NSDictionary

Los subíndices también se pueden usar con NSDictionary y NSMutableDictionary. El siguiente código:

NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
[myDictionary setObject:@"Baz" forKey:@"Foo"];
NSLog(@"%@", [myDictionary objectForKey:@"Foo"]); // Baz

Se puede acortar a:

NSMutableDictionary *myDictionary = [@{@"Foo": @"Bar"} mutableCopy];
myDictionary[@"Foo"] = @"Baz";
NSLog(@"%@", myDictionary[@"Foo"]); // Baz

Suscripción personalizada

Puede agregar subíndices a sus propias clases implementando los métodos requeridos.

Para subíndices indexados (como matrices):

- (id)objectAtIndexedSubscript:(NSUInteger)idx
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx

Para los subíndices codificados (como diccionarios):

- (id)objectForKeyedSubscript:(id)key
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow