Un NSSet rappresenta una collezione non ordinata di oggetti distinti.
Possiamo creare un NSSet con la seguente sintassi:
NSSet * colors = [NSSet setWithArray:@[@"Red", @"Green", @"Blue", @"Red"]];
for (NSString * color in colors) {
NSLog(@"%@", color);
}
Il codice produce il seguente output:
Green
Blue
Red
Si noti che la stringa Red duplicata viene memorizzata una sola volta.
Anche NSSet supporta i generics, quindi possiamo migliorare la definizione
precedente scrivendo:
NSSet<NSString *> * colors = [NSSet setWithArray:@[@"Red", @"Green", @"Blue", @“Red"]];
Infine, se abbiamo bisogno di modificare il set dopo averlo creato, useremo NSMutableSet:
NSMutableSet<NSString *> * colors = [NSMutableSet new];
[colors addObject:@"Red"];
[colors addObject:@"Green"];
[colors addObject:@"Blue"];
[colors addObject:@"Red"];
for (NSString * color in colors) {
NSLog(@"%@", color);
}
[colors removeAllObjects];
NSLog(@“colors.count: %lu", (unsigned long)colors.count);
Il codice precedente produce il seguente output:
Red
Green
Blue
colors.count: 0