【问题标题】:Why in Xcode, Groups can be created, but not real folders?为什么在 Xcode 中可以创建组,但不能创建真正的文件夹?
【发布时间】:2012-04-28 22:25:13
【问题描述】:

在做iOS编程的时候,有趣的是在Xcode(4.3.2)中,我们可以创建群组,比如群组调用Images,并在里面添加文件(或者作为链接或者选择“Copy items into组的文件夹”)。所以它在导航器中看起来像一个真正的文件夹,甚至提到“复制到...组的文件夹”,但实际上并没有文件夹。所有添加的文件都与.m.h 文件位于同一位置。

为什么我们需要组,而不是真正的文件夹?组比使用文件夹有优势吗?

【问题讨论】:

  • 至少当我右键单击项目的文件夹时,可以选择“新建组”而不是“新建文件夹”

标签: iphone ios xcode


【解决方案1】:

这是我的一个小烦恼。

我建议,在你的文件系统中创建一个文件夹,你有你的项目文件,然后将该文件夹拖到你想要组的 Xcode 中。它将像任何其他组一样工作,但现在链接到文件系统上的文件夹。在 Xcode 中将文件添加到该组现在会将它们添加到文件系统中的文件夹中。

工作方式更简洁,在大型项目中查找文件时很有帮助。也让 git 更干净。

Xcode 9 更新:

一旦 Xcode 中的组与磁盘上的目录结构匹配,在 Xcode 中将文件从一个组移动到另一个组现在将在磁盘上正确移动文件以匹配。

【讨论】:

  • 我只是想知道为什么 Xcode 开始时不只是使用文件夹而不是组?
  • 是的,它让 Git 更干净 :)
  • Yeh 注意到在 Xcode 9 中使用文件夹作为组现在也是默认设置
【解决方案2】:

注意:在 Xcode 10 中,默认行为现在会在您创建新组时创建链接文件夹。以下信息在其他情况下仍然适用。

推荐的文件组织方式是通过组,因为它比创建目录更灵活,并且允许您创建复杂的文件层次结构,同时在文件系统上保持完全不同的文件层次结构。它只是一个组织工具。也就是说,可以将组转换为文件夹引用,或者最初将它们创建为文件夹引用。

此外,如果您需要更改文件系统中内容的位置,使用组而不是文件夹引用可以为您提供更大的灵活性 - 假设您有一个在一堆不同项目中使用的通用代码文件夹。组允许您像在项目中一样组织项目内部的文件,同时仍将代码的一份副本保留在中心位置。是的,您也可以使用文件夹引用来执行此操作,但是如果您以后想将其他内容添加到同一组但不希望将它们添加到该公共文件夹中,组会更加灵活。

如果要将组链接到文件夹,请单击项目文件树中的组,然后按 command+option+1。在下拉菜单下方,右侧会显示“路径:相对于组”之类的内容,在“无”一词旁边有一个带有灰色边框的白色小方块。单击此按钮然后选择/创建文件夹会将组绑定到文件夹。

此外,当您将文件夹拖入 Xcode 时,它​​会询问您是否希望它是组或文件夹引用:

【讨论】:

  • 但是“将组绑定到文件夹”与“创建文件夹引用”不同。后者很特殊:它将 文件夹 复制到构建应用程序中。
  • 但是当你想在finder/svn中寻找一个类并且目录结构完全不同时很痛苦
  • @htafoya 我绝对同意。另一方面,如果您使用组而不是文件夹来重新组织一堆文件,那么在您的实际源代码中合并冲突的机会就会减少,因为文件本身不会移动。有绝对重要的权衡需要考虑。
  • 我知道有些人喜欢这种风格,我相信理论上它很棒。在实践中......没有那么多。例如,当我将东西从一组移动到另一组时,我的 Xcode 当前正在崩溃。如果我根本无法组织我的文件,很难将自己描绘成聪明或以任何方式达到最佳状态
【解决方案3】:

有一个命令行工具 - “synx” 可以在 github 中找到,完全满足您的需求。

它重新组织 finder 中的 Xcode 项目文件夹以匹配项目中的 Xcode 组。

您可以在这里找到它: https://github.com/venmo/synx

更新:XCode 9 默认支持此功能。所以,不再需要使用其他工具了!

【讨论】:

  • 如果您在添加新组时忘记创建文件夹,那么这是将 xcode 组转换为文件夹系统的最佳方法
猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多