属性列表

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





body.skin-minerva .mw-parser-output table.infobox captiontext-align:center







属性列表
扩展名
.plist
开发者
苹果公司和GNUstep,
前NeXT
格式类型
序列化对象

在OS X的Cocoa,NeXTSTEP和GNUstep编程框架中,属性列表(Property List)文件是一种用来存储序列化后的对象的文件。属性列表文件的文件扩展名为.plist,因此通常被称为plist文件。


Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的Mac OS中是由资源分支提供的。




目录





  • 1 表达

    • 1.1 NeXTSTEP


    • 1.2 GNUstep


    • 1.3 Mac OS X



  • 2 参考文献


  • 3 参见


  • 4 外部链接

    • 4.1 第三方编辑工具





表达


由于Plist中存储的数据是抽象的,其采用的文件格式可以不止一种。NeXTSTEP只使用一种格式,而稍晚的GNUstep和OS X框架导入了不同的文件格式。



NeXTSTEP


NeXTSTEP系统中,Plist被设计为人类可读的,并可以手工修改,故采用了类似于编程语言的语法将数据序列化为ASCII数据。


字符串被表示为:


"This is a plist string"

二进制数据被表示为:


< [文本形式的十六进制数] >

数组被表示为:


( "1", "2", "3" )

字典则被表示为:



"键" = "值";
...


NeXT的plist格式的一个限制是它不能表示NSValue对象(即数,布尔值等)。



GNUstep


GNUstep采用了NeXTSTEP的格式,并添加了少许特性。它支持NSValue对象(以普通ASCII码表示),支持NSDate(序列化成<*DYYYY-MM-DD HH:MM:SS timezone>的格式)。


GNUstep也可以读写OS X使用的Plist格式。



Mac OS X


Mac OS X在支持读取NeXTSTEP格式的同时,并不鼓励使用它,而是推荐使用Apple导入的两种新格式。


Mac OS X 10.0中,NeXTSTEP的格式被认为是不被推荐的,并导入了一种新的XML格式,其由Apple定义的公开DTD所规范化。XML格式支持非ASCII格式,亦可存储NSValue对象。但与GNUstep的ASCII plist格式不同,Apple的NeXTSTEP格式的plist文件不支持这两种特性。


由于XML文件在储存时不是最有空间效率的,Mac OS X 10.2导入了一种新的格式,它将plist文件存储为二进制文件。从Mac OS X 10.4开始,这是偏好设置文件的默认格式。


plutil工具(在Mac OS X 10.2中导入)可以用来检查plist的语法,或者对plist文件进行格式转换。


可以使用任何文本编辑器对XML格式的plist进行更改,同时,Apple提供了“Property List Editor”应用程序(作为Apple Developer Tools的一部分安装),它是一个树状的查看器与编辑器,并可以处理二进制格式的plist。


对于XML格式,XML标签和相关Foundation类、Core Foundation类型、数据储存格式的关系如下表所示:


































Foundation类
Core Foundation类型
XML标签
储存格式
NSString
CFString
<string>

UTF-8编码的字符串
NSNumber
CFNumber
<real>, <integer>
十进制数字符串
NSNumber
CFBoolean
<true />, or <false />
无数据(只有标签)
NSDate
CFDate
<date>

ISO 8601格式的日期字符串
NSData
CFData
<data>

Base64编码的数据
NSArray
CFArray
<array>
可以包含任意数量的子元素
NSDictionary
CFDictionary
<dict>
交替包含<key>标签和plist元素标签

defaults工具可以用于以命令行形式,通过程序的偏好设置域,管理用于储存偏好设置的plist文件;而Property List Editor则可以用于编辑任何plist文件(包括用于储存偏好设置的)。从Mac OS X 10.4开始,Apple提供了通过System Events应用程序读写plist文件的AppleScript接口,而从Mac OS X 10.5开始,Apple也提供了用于编辑,创建和写入plist文件的接口[1]



参考文献




  1. ^ AppleScript:属性列表



参见


  • 数据序列化格式对比


外部链接



  • The plist manual page at developer.apple.com

  • Property List Programming Guide for Cocoa

  • Property List Programming Topics for Core Foundation


  • NSPropertyListSerialization class documentation from the GNUstep project


  • OpenStep plist API from Sun Microsystems


  • Apache Commons Configuration Configuration API in Java supporting the Property List format

  • Apple's Property List Document Type Definition


  • BinaryPListParser.java[永久失效連結] from Quaqua[永久失效連結] project, which is listed as using a variant of the BSD licenses.


第三方编辑工具



  • PlistEdit, a general property list editor


  • PlistEdit Pro, a general property list editor


  • PrefEdit, specializing in editing preference plists


  • Property List Tools, an Applescript scripting addition for manipulating plists


  • Pledit, a general property list editor for Microsoft Windows

Popular posts from this blog

泉州府

大跃进

马相伯