NSDictionary

20 settembre 2017

Un NSDictionary è la classe destinata a rappresentare una struttura dati di tipo dizionario, ovvero una collezione non ordinata di coppie di tipo chiave-valore. Su Objective C, un oggetto di questa classe può essere costruito con la seguente sintassi abbreviata:

        NSDictionary * products = @{
            @"iMac": @1998,
            @"iPod": @2001,
            @"iPhone": @2007,
            @"iPad":@2010,
            @"AppleWatch": @2015
        };

Con il codice precedente abbiamo costruito un dizionario dove la chiave è il nome di un prodotto mentre il valore è l’anno in cui il prodotto è diventato disponibile nel mercato.

Notiamo che un NSDictionary (ma anche NSArray o NSSet) non può contenere direttamente dei tipi primitivi (come ad esempio int). Tuttavia può tranquillamente contenere un NSNumber (che è un oggetto). Quindi usiamo la sintassi @1998 per trasformare l’intero 1998 in un NSNumber. A quel punto possiamo inserirlo nel dizionario senza problemi.

Anche in questo caso possiamo usare i generics:

        NSDictionary<NSString*, NSNumber*> * products = @{
            @"iMac": @1998,
            @"iPod": @2001,
            @"iPhone": @2007,
            @"iPad":@2010,
            @"AppleWatch": @2015
        };

Possiamo iterare tutte le chiavi di un NSDictionary con il costrutto for in usando il seguente codice:

        for (NSString * key in products.allKeys) {
            NSLog(@"%@", key);
        }

Siccome l’NSDictionary non è una struttura ordinata, potremmo ottenere un output di questo tipo:

AppleWatch
iPhone
iPod
iPad
iMac

Analogamente, possiamo iterare i valori di un NSDictionary:

        for (NSNumber * value in products.allValues) {
            NSLog(@"%@", value);
        }

Tutte le lezioni

1 ... 20 21 22 ... 24

Se vuoi aggiornamenti su NSDictionary inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su NSDictionary

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy