L’oggetto NSUserDefaults è tipicamente usato per salvare/ripristinare le preferenze della propria applicazione, dati di configurazione, ecc.
In più oltre alla specifica applicazione, vi è un ampio elenco predefinito di sistema che è disponibile per tutte le applicazioni, accessibile utilizzando il metodo standardUserDefaults per l’oggetto NSUserDefault.
Per ottenere la lista completa delle impostazioni di sistema bisogna inserire questo codice
[code lang=”obj-c”]NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSLog(@\”Defaults: %@\”, defaults);[/code]
Ecco un parziale output di cosa appare sul mio dispositivo
[code lang=”obj-c”]Defaults: {
AppleICUForce24HourTime = 0;
AppleITunesStoreItemKinds = (
wemix,
podcast,
…
);
AppleKeyboards = (
\”en_US@hw=US;sw=QWERTY\”,
\”zh_Hant-HWR@sw=HWR\”,
\”emoji@sw=Emoji\”
);
AppleKeyboardsExpanded = 1;
AppleLanguages = (
en,
\”zh-Hant\”,
fr,
de,
…
}[/code]
Come puoi vedere i valori default ritornati qui sono contenuti in un oggetto di tipo dizionario. La lista delle tastiere nel dizionario è contenuto in un NSArray. Per ottenere quell’array semplicemente richiedi l’oggetto con chiave “AppleKeyboards”.
[code lang=”obj-c”]NSArray *tastiere = [[NSUserDefaults standardUserDefaults] objectForKey:@\”AppleKeyboards\”];
NSLog(@\”Tastiere: %@\”, tastiere);[/code]
Ed ecco l’output delle tastiere internazionali installate su iPhone o iPad.
[code lang=”obj-c”]Tastiere: (
\”en_US@hw=US;sw=QWERTY\”,
\”zh_Hant-HWR@sw=HWR\”,
\”emoji@sw=Emoji\”
)[/code]