为什么苹果使用.plist文件?
Windows使用.ini文件,它可能不太灵活,但也占用较少的空间,这与JSon占用的空间较少的原因相同。
他们甚至可以使用JSON进行配置,它至少一样容易解析,支持他们需要的值类型(dict等)。并且占用的空间最小。
发布于 2011-11-08 04:16:35
在NeXTSTEP中找到的original property list format看起来很像JSON,但语法略有不同。当NeXTSTEP成为Mac时,这种格式被您今天看到的XML版本所取代。新的格式比旧的格式有一些改进,你可以在那个链接中读到。
属性列表可以包含JSON (和INI文件)无法包含的几种数据类型:指定为实数(浮点)或整数的数字、日期和Base64编码的二进制数据。而且,直到Mac发布之后很久,JSON才成为documented publicly。
MacOS10.2和更新的版本包括一种比XML更节省空间的二进制plist格式,并且plist文件可以在两者之间进行无损转换。
发布于 2011-11-08 03:24:46
因为NeXTSTEP使用了它们,所以苹果也采用了它们。
在NeXTSTEP下,属性列表被设计为人类可读和手动编辑,并以一种有点像编程语言的语法序列化为ASCII码。
NeXTSTEP使用一种格式来表示属性列表,随后的GNUstep和Mac框架引入了不同的格式。
虽然Mac也可以读取NeXTSTEP格式,但苹果将其搁置一边,转而采用自己的两种新格式。
在MacOSX10.0中,不推荐使用NeXTSTEP格式,并引入了一种新的格式,其中包含一个由苹果公司定义的公共DTD。XML格式支持非ASCII字符和存储NSValue对象(与GNUstep的ASCII属性列表格式不同,苹果的ASCII属性列表格式不支持)。但是,由于XML文件不是最节省空间的存储方式,Mac OS X 10.2引入了一种新的格式,其中属性列表文件存储为二进制文件。从MacOSX10.4开始,这是首选项文件的默认格式。
发布于 2011-11-08 03:23:03
我相信这是NeXTSTEP时代遗留下来的事情之一……至于为什么他们更喜欢使用它,这可能是因为他们可以。;-)
https://stackoverflow.com/questions/8041384
复制相似问题