1

问题是有人知道 Cappuccino 中(type-2)plist 文件的结构是什么吗?

在 Cappuccino 中有很多使用 plist 文件的地方。

一些诸如 info.plist (type-1) 遵循可识别的结构。这些很好,我能理解。

<plist version="1.0">
<dict>
<key>CPApplicationDelegateClass</key>
<string>DocumentController</string>
<key>CPBundleDocumentTypes</key>
<array>
<dict> ..... etc

然而,其他用于导入数据、将 pptx 文件导入幻灯片应用程序以及我相信 Atlas 开发工具不会。

他们有这样的结构

280NPLIST;1.0;D;K;4;$topD;K;23;DocumentPresentationKeyD;K;6;CP$UIDd;1;1E;E;K;8;$objectsA;S;5;$nullD;K;6;$classD;K;6;CP$UIDd;1;2E;K;23;SKPresentationSlideSizeD;K;6;CP$UIDd;1;3E;K;23;SKPresentationNotesSizeD;K;6;CP$UIDd;1;4E;K;20;SKPresentationSlidesD;K;6;CP$UIDd;1;5E;K;26;SKPresentationSlideMastersD;K;6;CP$UIDd;1;7E;K;19;SKPresentationThemeD;K;6;CP$UIDd;1;8E;E;D;K;10;$classnameS;14;

无论大小如何,它似乎都在一条线上(我今天有一个超过 130 万个字符。

一些结构与字符计数有关,但我有一些看起来像有效文件失败的文件,而那些看起来可疑的文件则没有。

我怀疑我刚刚问了一个 Tumbleweed 徽章问题她,但因为我已经有了一个,所以没关系。

4

2 回答 2

4

我只能猜测风滚草徽章是什么,但让我们看看我们是否可以避免这种情况。您正在查看的文件是“280 North 格式 Plist”,这是一种特殊格式的 plist,已针对卡布奇诺应用程序进行了优化。如果您想深入研究它,您可以使用该cplutil工具并将其转换为常规 XML plist。

cplutil -convert xml1 -o Info3.plist Info1.plist

尼斯全景有更多信息

于 2010-06-11T14:35:48.407 回答
3

要回答有关 plist 实际结构的问题,它有点类似于 netstrings ( http://cr.yp.to/proto/netstrings.txt )。当然,内容与 XML plist 相同。

该格式以一个魔术字符串(和一个版本)开头,以识别要读取的 plist 类型。然后是几个 plist 类型(d->dictionary、k->key 等)的常量、项目的长度,然后是项目本身。这些部分以分号分隔。

因此,如果我们只看您发布的第一部分:

280NPLIST;1.0;这告诉我们格式,这是 1.0 版

D;第一个条目是一个字典,它总是有一个键,然后是对象

K;4;$top字典中的第一项是第一个键,长度为4

D;K;23;DocumentPresentationKey关联的值本身就是字典,其第一个键长为 23 个字符

等等

该格式旨在使仅阅读文档的部分内容变得更容易,而无需解析整个 plist。

于 2010-06-12T22:01:55.397 回答