屬性表文件(Plist)是一種文件形式,通常用於儲存用戶設置,也可以用於存儲捆綁的信息,該功能在舊式的MacOS中是由資源分支提供的。由於Plist中存儲的數據是抽象的,其採用的文件格式可以不止一種。
Plist表達
NeXTSTEP只使用一種格式,而稍晚的GNUstep和MacOSX框架導入了不同的文件格式。
NeXTSTEP
NeXTSTEP系統中,Plist被設計為人類可讀的,並可以手工修改,故採用了類似於編程語言的語法將數據串列化為ASCII數據。
字元串被表示為:
1
"Thisisapliststring"
二進位數據被表示為:
1
<[文本形式的十六進位數]>
數組被表示為:
1
("1","2","3")
字典則被表示為:
1
{"鍵"="值";...}
NeXT的plist格式的一個限制是它不能表示NSValue對象(即數,布爾值等)。
Plist格式是什麼
GNUstep
GNUstep採用了NeXTSTEP的格式,並添加了少許特性。它支持NSValue對象(以普通ASCII碼錶示),支持NSDate(串列化成<*DYYYY-MM-DDHH:MM:SStimezone>的格式)。
GNUstep也可以讀寫MacOSX使用的Plist格式。
MacOSX
MacOSX在支持讀取NeXTSTEP格式的同時,並不鼓勵使用它,而是推薦使用Apple導入的兩種新格式。
MacOSX10.0中,NeXTSTEP的格式被認為是不被推薦的,並導入了一種新的XML格式,其由Apple定義的公開DTD所規範化。XML格式支持非ASCII格式,亦可存儲NSValue對象。但與GNUstep的ASCIIplist格式不同,Apple的NeXTSTEP格式的plist文件不支持這兩種特性。
由於XML文件在儲存時不是最有空間效率的,MacOSX10.2導入了一種新的格式,它將plist文件存儲為二進位文件。從MacOSX10.4開始,這是偏好設置文件的默認格式。
plutil工具(在MacOSX10.2中導入)可以用來檢查plist的語法,或者對plist文件進行格式轉換。
可以使用任何文本編輯器對XML格式的plist進行更改,同時,Apple提供了「PropertyListEditor」應用程序(作為AppleDeveloperTools的一部分安裝),它是一個樹狀的查看器與編輯器,並可以處理二進位格式的plist。
總之,Plist格式給大家簡單的介紹了一些,希望大家多看看。