为什么苹果使用.plist文件?
Windows使用.ini文件,这些文件可能不太灵活,但占用的空间也较少,原因与JSon占用的空间相同,而不是XML。
他们甚至可以使用JSON进行配置,它至少同样易于解析,支持他们需要的值类型(dict等)并占用最少的空间。
答案 0 :(得分:2)
因为NeXTSTEP使用它们,所以Apple也采用了它们。
根据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时代遗留的事情之一......至于他们为什么喜欢使用它,可能是因为他们可以。 ; - )