plist

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Nei framework NeXTSTEP, GNUstep e Cocoa in macOS, 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.

Le Representations[modifica | modifica wikitesto]

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 macOS hanno introdotto altri formati.

NeXTSTEP[modifica | modifica wikitesto]

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 linguaggio 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...).

GNUstep[modifica | modifica wikitesto]

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 macOS.

Mac OS X[modifica | modifica wikitesto]

Mac OS può leggere anche il formato NeXTSTEP. Esso però introduce due propri formati.

In Mac OS X Cheetah, il formato NeXTSTEP venne deprecato, e fu introdotto un nuovo formato XML, con una DTD della Apple.

Mac OS X Jaguar ha introdotto un nuovo formato, dove i file plist sono memorizzati come binari. A partire da Mac OS X Tiger, questo è il formato di default.

L'utilità plutil (introdotta con Mac OS X 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.

Collegamenti esterni[modifica | modifica wikitesto]