Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

NSDictionary

Come si usano le classi NSDictionary e NSMutableDisctionary, rappresentazione delle strutture dati a dizionario nel linguaggio Objective C per iOS.
Come si usano le classi NSDictionary e NSMutableDisctionary, rappresentazione delle strutture dati a dizionario nel linguaggio Objective C per iOS.
Link copiato negli appunti

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);
        }


Ti consigliamo anche