Property List
Eine Property List (dt. Liste von Eigenschaften), umgangssprachlich auch plist(-Datei, „P-List“ ausgesprochen) oder Property-Liste, dient dazu, Daten strukturiert abzulegen. Technisch geschieht dies durch die Serialisierung von assoziativen Datenfeldern (englisch auch dictionaries). In der Regel tragen solche Dateien die Endung Das Property-List-Format wurde seinerzeit für NeXTStep entwickelt und in macOS, iOS und Co. übernommen; auch in GNUstep, dem freien OpenStep- bzw. Cocoa-Nachbau, kommen sie zum Einsatz. FunktionenSie eignen sich besonders dafür, serialisierte Objekte bzw. Eigenschaften (properties) einer Klasse aufzunehmen. Das Format unterscheidet die Datentypen Data, String, Date, Integer und Float sowie Arrays und Dictionaries.[1] Die beiden heute gültigen plist-Formate sind auf XML-Basis beziehungsweise binär. Sie werden vom System gleichermaßen unterstützt, sind zueinander kompatibel und können ineinander konvertiert werden. Die Dateien werden häufig genutzt, um Einstellungen des Benutzers zu speichern. Weiterhin besitzt jedes Application Bundle mindestens eine Datei namens GeschichteIn NeXTStep wurde ein Dateiformat zur Serialisierung assoziativer Arrays (im Grunde verschachtelte Werte, die einen Namen für die Zuweisung oder eine ID haben) eingeführt. Entwickler konnten so einfach z. B. Einstellungen oder Informationen abspeichern und auslesen. Da macOS ein Nachfahre von NeXTStep ist, übernahm es auch das plist-Datenformat. Apple erklärte damals das bisherige plist-Format von NeXTStep als ungültig und führte ein neues auf der Basis von XML ein, das den Funktionsumfang seines Vorgängers übernahm und gleichzeitig neue Datentypen hinzufügte. GNUstep, eine freie Implementierung von OpenStep bzw. Cocoa, übernahm das alte Format aus Gründen der Kompatibilität und erweiterte es um zwei Datentypen. DarstellungDa die Daten, die in diesen Dateien gespeichert werden können, sehr abstrakt sind, lassen sie sich auf vielfältige Art und Weise speichern. Im Lauf der Zeit hat sich das Format der Dateien verändert; so nutzte NeXTStep ein anderes Format, als macOS und GNUstep dies tun. NeXTStepDie plist-Dateien unter NeXTStep waren darauf ausgelegt, von Menschen lesbar und von Hand veränderbar zu sein; deswegen wurden sie als ASCII serialisiert. Die Datentypen wurden so dargestellt:
Ein Nachteil dieses Formates war, dass keine NSValue (Zahl, Boolean usw.) gespeichert werden konnten. GNUstepGNUstep übernahm das plist-Format von NeXTStep, nahm aber einige Änderungen vor. Zum einen wurden NSValues unterstützt (dargestellt als ASCII), zum anderen wurde der neue Datentyp NSDate hinzugefügt (Darstellung: Weiterhin kann GNUstep das plist-Format von macOS lesen und schreiben.[2] macOSZwar kann macOS das alte NeXTStep-Format noch immer lesen, aber bei seiner Einführung (damals Mac OS X 10.0) wurde das NeXTStep-Format als veraltet deklariert und ein neues, auf XML basierendes plist-Format eingeführt. Apple veröffentlichte dafür eine Dokumenttypdefinition.[3] Da XML-Dateien zwar von Menschen lesbar, aber dadurch sehr speicherineffizient sind, wurde mit Mac OS X 10.2 ein neues binäres plist-Format eingeführt. Die beiden Formate sind kompatibel und können mit XML-plist-Dateien können grundsätzlich per Hand bearbeitet werden. Da dies aber ab einer gewissen Komplexität ein mühevolles Unterfangen ist, lieferte Apple mit dem Xcode-Paket bis Version 3.2 den Property List Editor mit aus. Ab Xcode 4.0 ist der Editor in die Xcode-IDE (Integrierte Entwicklungsumgebung) integriert. Des Weiteren ist es möglich, mittels AppleScript durch Aufrufen von Ab Mac OS X Lion bietet Das Kommandozeilen-Tool Im Laufe der Zeit haben Entwickler für die verschiedensten Programmiersprachen plist-Editoren und Bibliotheken entwickelt, die plist-Dateien serialisieren und in Datentypen der jeweiligen Sprache konvertieren können. In plist-Dateien im XML-Format sind für die folgenden Datentypen (und die zugehörigen Cocoa- und Core-Foundation-Typen) die folgenden Tags gültig:
WeblinksBibliotheken die XML- und binäre plist-Dateien lesen und schreiben können:
Einzelnachweise
|
Portal di Ensiklopedia Dunia