“文档作为捆绑分发”是啥意思?

Posted

技术标签:

【中文标题】“文档作为捆绑分发”是啥意思?【英文标题】:What does "Document is distributed as a bundle" mean?“文档作为捆绑分发”是什么意思? 【发布时间】:2016-07-20 06:32:16 【问题描述】:

我正在使用 Xcode 7.3.1 创建一个基于 Cocoa 文档的应用程序。我注意到在文档类型信息面板中有一个我不理解的选项。它说“文档作为捆绑分发”,看起来像这样。

我发现此选项控制应用程序 Info.plist 文件中 CFBundleDocumentTypesLSTypeIsPackage 键。在 Apple 的官方文档中,我只能找到两个关于此密钥用法的解释。两者都是相对较大的表格中非常简短的条目。

第一个解释来自App Creation Process Overview。它非常简短,没有提供比上面的屏幕截图更多的信息。

一个布尔值,指定文档是否作为捆绑分发。如果否,则省略此值。

第二个解释更有帮助。它来自 Mac 开发者库的Information Property List Core Foundation Keys Reference。

指定文档是否作为包分发。如果设置为 true,则捆绑目录被视为文件。 (在 OS X v10.4 及更高版本中,如果存在 LSItemContentTypes 键,则忽略此键。)

听起来好像此选项会影响操作系统处理应用程序包本身的方式。如果是这样的话,我真的不知道如何理解这些描述。

我知道许多文档类型(例如.xcodeproj 文档)实际上是目录。此设置是否控制文档是否为目录?

【问题讨论】:

【参考方案1】:

如您所见,bundle 是一种专门的目录结构,其中包含特定文件(如Info.plist)。

Document Package 就是这样一个捆绑包。

因此

此设置是否控制文档是否为目录?

是的;但是您不会将其称为目录;这是一个捆绑包。

【讨论】:

您无可否认是正确的,但为什么不将其视为目录? @WilliamRosenbloom 因为它不仅仅是一个目录。例如,Finder 会以不同的方式处理它。

以上是关于“文档作为捆绑分发”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

SetParent 的文档中的“同步 UIState”是啥意思?

sfence 文档中的“序列化操作”是啥意思?

xml文档中的XMLNS URL是啥意思

DOM是啥意思啊?

脱离文档流是啥意思

在谈论 MongoDB 和 Cassandra 时,“面向文档”与键值是啥意思?