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
Accesso Directory · Accesso Portachiavi · Acquisizione Immagine · Aggiornamento Software · Amministratore ODBC · Anteprima · Assistente Migrazione · Automator · BOMArchiveHelper · Calcolatrice · Chess · Classic · Configurazione MIDI Audio · Connessione Internet · Console · Crash Reporter · Dashboard · Dictionary · DigitalColor Meter · DiskImageMounter · Dock · DVD Player · Exposé · Finder · Gestione NetInfo · Grapher · iCal · iChat · Installer · Istantanea · iSync · Jar Launcher · Libro Font · Mail · Monitoraggio Attività · Photo Booth · Preferenze di Sistema · Promemoria · QuickTime Player · Rubrica Indirizzi · Safari · Scambio Documenti Bluetooth · Script Editor · Sherlock · Spotlight · System Profiler · Terminale · TextEdit · Utility Amministrazione AirPort · Utility ColorSync · Utility Configurazione Stampante · Utility Disco · Utility Network · Visore Aiuto · VoiceOver · X11
AU Lab · CHUD Tools · Core Image Fun House · Dashcode · FileMerge · Help Indexer · Icon Composer · Interface Builder · PackageMaker · Pixie · Property List Editor · Quartz Composer · Repeat After Me · USB Prober · Xcode
AppleShare IP Migration · Fibre Channel Utility · Gateway Setup Assistant · Open Directory · MySQL Manager · QuickTime Broadcaster · QuickTime Streaming Server · RAID Admin · Server Admin · Workgroup Manager · Xgrid
AppleScript · Aqua · Audio Units · Bonjour · Boot Camp · Bundle · Cambio utente rapido · Carbon · Cartelle smart · Cocoa · Core Audio · Core Data · Core Foundation · Core Image · CoreServices · Core Video · Darwin · Exposé · Inkwell · JavaScriptCore · Keychain · KWQ · NetInfo · OpenGL · Pixlet · plist · Quartz (Quartz 2D, Quartz Compositor, Quartz Extreme)· QuickTime · Rosetta · Universal binary · WebCore · WebKit · XNU