Un array rappresenta una collezione ordinata di oggetti ed è rappresentato dalla classe NSArray.
Abbiamo già accennato in precedenza alla sintassi per creare un array di stringhe in Objective-C:
NSArray * fruits = @[@"Apple", @"Orange", @"Kiki"];
Possiamo accedere a un elemento dell’array utilizzando la tecnica del subscripting, ovvero scrivendo fruits[0]
per accedere alla prima posizione.
Con l’introduzione di Xcode 7, è possibile definire il tipo dell’elemento contenuto nell’array, sfruttando la sintassi seguente:
NSArray<NSString*> * fruits = @[@"Apple", @"Orange", @“Kiki"];
In questo modo, stiamo indicando al compilatore che fruits non è semplicemente un array, ma un array di NSString
. Quindi, se ad esempio aggiungeremo una riga di questo tipo:
NSNumber * number = fruits[0];
otterremo un warning poiché il compilatore sa che stiamo facendo puntare un referenza di tipo NSNumber
a un oggetto di tipo NSString
.
Un NSArray
non può essere modificato. Se vogliamo un array a cui si possano aggiungere o rimuovere oggetti dobbiamo utilizzare NSMutableArray
. Ecco un esempio:
NSMutableArray<NSString*> * fruits = [NSMutableArray array];
[fruits addObject:@"Apple"];
[fruits addObject:@"Orange"];
[fruits addObject:@"Kiwi"];
NSLog(@"fruits.count: %lu", (unsigned long)fruits.count);
[fruits removeObject:@"Apple"];
NSLog(@"fruits.count: %lu", (unsigned long)fruits.count);
[fruits removeAllObjects];
NSLog(@"fruits.count: %lu", (unsigned long)fruits.count);
L'output sarà il seguente:
3
2
0