Plist
Da Wikipedia, l'enciclopedia libera.
Nei framework NeXTSTEP, GNUstep e Cocoa in Mac OS X, i file plist (abbreviazione di Property List) sono file che memorizzano degli oggetti serializzati.
I file plist usano l'estensione .plist, e sono codificati e decodificati dalla classe NSPropertyListSerialization. Un file plist può contenere solo oggetti Core Foundation o Foundation Kit: la libreria non sa come serializzare altri tipi di oggetti.
Spesso sono usati per memorizzare le preferenze impostate dall'utente (un po' come i Registri Windows su Microsoft Windows). Sono usati anche per memorizzare informazioni sui bundle e sulle applicazioni, con un sistema simile alle resource fork del vecchi Mac OS.
Indice |
[modifica] Le Representations
Siccome i dati memorizzati nei file plist sono piuttosto astratti, i formati di file possono essere diversi. Cioè, NeXTSTEP usava un formato per rappresentare i file plist, e i successivi framework GNUstep e Mac OS X hanno introdotto altri formati.
[modifica] NeXTSTEP
Sotto NeXTSTEP, i file plist erano progettati per essere comprensibili da una persona ed essere modificabili a mano. Essi erano serializzati in ASCII, in un modo che ricorda un liguaggio di programmazione.
Le stringhe erano rappresentate così:
- "Questa è la mia stringa."
I dati binari invece in quest'altro modo:
- < [codici esadecimali in ASCII] >
Gli array erano rappresentati così:
- ( "1", "2", "3" )
E i dizionari (coppie chiave-valore) così:
- {
- "chiave" = "valore";
- ...
- }
Una limitazione del formato plist di NeXT è l'impossibilità di rappresentare un oggetto NSValue (numero, booleano...).
[modifica] GNUstep
GNUstep usa il formato NeXTSTEP con alcune aggiunte. Primo, supporta gli oggetti NSValue (rappresentati in ASCII), secondo, supporta gli oggetti NSDate (che sono serializzati così: <AAAA-MM-GG OO:MM:SS fuso_orario>)
GNUstep può anche leggere e scrivere i file plist nel formato usato da Mac OS X.
[modifica] Mac OS X
Mac OS può leggere anche il formato NeXTSTEP. Esso però introduce due propri formati.
In Mac OS 10.0, il formato NeXTSTEP venne deprecato, e fu introdotto un nuovo formato XML, con una DTD della Apple.
Mac OS X 10.2 Jaguar ha introdotto un nuovo formato, dove i file plist sono memorizzati come binari. A partire da Mac OS X 10.4 Tiger, questo è il formato di default.
L'utilità plutil (introdotta con Mac OS X 10.2 Jaguar) può essere usata per controllare la sintassi dei file plist, o convertirli da un formato all'altro.
Per il formato XML, i tag e le relative classi Foundation sono le seguenti:
Tipo CF | Tag XML |
---|---|
NSString | <string> |
NSNumber | <real> o <integer> |
NSDate | <date> |
NSBoolean | <true /> o <false /> |
NSData | <data> |
NSArray | <array> |
NSDictionary | <dict> |
L'utility defaults può modificare i file plist identificandoli attraverso il loro dominio. Property List Editor (che fa parte di SDK) è un programma grafico che può editare file plist uno per volta.
[modifica] Collegamenti esterni
- (EN) Documentazione Apple per i file plist
- (EN) Documentazione per la classe NSPropertyListSerialization dal progetto GNUstep
- (EN) OpenStep plist API dalla Sun Microsystems