为什么apple使用.plist文件?

时间:2011-11-07 19:17:54

标签: macos encoding plist

为什么苹果使用.plist文件?

Windows使用.ini文件,这些文件可能不太灵活,但占用的空间也较少,原因与JSon占用的空间相同,而不是XML。

他们甚至可以使用JSON进行配置,它至少同样易于解析,支持他们需要的值类型(dict等)并占用最少的空间。

3 个答案:

答案 0 :(得分:2)

因为NeXTSTEP使用它们,所以Apple也采用了它们。

Property List Wiki Page

  

根据NeXTSTEP,财产清单的设计是人类可读的   手动编辑,序列化为ASCII语法有点像   编程语言。

     

NeXTSTEP使用一种格式来表示属性列表,并使用   随后引入的GNUstep和Mac OS X框架有所不同   格式。

     

虽然Mac OS X也可以读取NeXTSTEP格式,但Apple将其置于一边   赞成自己的两种新格式。

     

在Mac OS X 10.0中,NeXTSTEP   不推荐使用format,并引入了一种新的XML格式   Apple定义的公共DTD。 XML格式支持非ASCII   字符和存储NSValue对象(与GNUstep的ASCII不同)   属性列表格式,Apple的ASCII属性列表格式没有   支持)。但是,因为XML文件不是最节省空间的   存储方式,Mac OS X 10.2引入了一种新的格式属性   列表文件存储为二进制文件。从Mac OS X 10.4开始,   这是首选项文件的默认格式。

答案 1 :(得分:2)

NeXTSTEP中发现的original property list format看起来很像JSON,但语法略有不同。当NeXTSTEP成为Mac OS X时,该格式被您今天看到的XML版本所取代。新格式比旧格式有一些改进,您可以在该链接中阅读。

属性列表可以包含JSON(和INI文件)不能包含的几种数据类型:指定为实数(浮点)或整数,日期和base64编码二进制数据的数字。此外,直到Mac OS X发布之后,JSON才是documented publicly

Mac OS 10.2及更新版本包含二进制plist格式,它比XML更节省空间,并且plist文件可以在两者之间无损转换。

答案 2 :(得分:1)

我认为这是NeXTSTEP时代遗留的事情之一......至于他们为什么喜欢使用它,可能是因为他们可以。 ; - )