【问题标题】:How to delete an old/unused Data Model Version in Xcode如何在 Xcode 中删除旧的/未使用的数据模型版本
【发布时间】:2011-12-04 05:40:07
【问题描述】:

如何在 Xcode 中删除旧的数据模型?该选项在菜单上被禁用。 (我要删除的模型尚未向公众发布 - 它们是临时开发模型。)

【问题讨论】:

  • 您的意思是“编辑”菜单下的“删除”选项被禁用(而您的旧数据模型文件在文件检查器中被选中)?还是你的意思完全是别的?
  • 是的,编辑菜单下的删除选项以及控制右键单击菜单(以及我能找到的任何菜单)下的删除选项都被禁用。我知道有些人会去以前的 xcode 删除旧的/未使用的版本,但我没有安装。
  • Michael,你能在 xCode 4 中做到这一点吗?
  • 是的...我从未见过我的任何 XCode 4 项目都禁用了“删除”菜单选项。
  • 专门用于 xcdatamodel?其他人在删除 xcdatamodels XCode 4 时遇到了同样的问题。我只是没有看到发布的解决方案。

标签: xcode core-data version-control xcdatamodel


【解决方案1】:

这是一个 hack,但这对我有用:

  1. 将 Xcode 中模型的当前版本设置为您想要保留的版本
  2. 从您的项目中删除 .xcdatamodeld(右键单击 -> 删除 -> 仅删除参考
  3. 在 Finder 中显示 .xcdatamodeld 包的内容(右键单击 -> 显示包内容)
  4. 删除不再需要的 .xcdatamodel 文件
  5. 将 .xcdatamodeld 文件重新添加到您的项目中

这消除了手动修改任何项目元数据文件的需要。

【讨论】:

  • 我尝试了这种技术,发现由于我的模型版本的命名方式,模型版本重新排序不正确,并且选择了错误的默认版本,因为我将 xcdatamodel 文件重新添加到项目。这可能是因为我最多38个模型版本并且我没有更改默认版本名称,所以版本命名为“MY_APP 37.xcdatamodel”。我想删除 38。在导入时,它是按词法顺序拉的,这意味着“MY_APP 10.xcdatamodel”是第一个,并被选为默认值。在我的情况下并不理想。
  • Mike - 对我来说同样的问题,虽然我能够在没有任何重大戏剧性的文本编辑器中重新排序 project.pbxproj。仍然不理想。
  • 这不适用于 Xcode 5.1.1。以前,通过许多小的模型更改和增加的模型版本号,轻量级自动迁移可以正常工作。但是,在尝试使用这种方法删除所有无关的“仅开发”模型后,我收到错误:“错误:无法找到或自动推断迁移映射模型”。
  • 在 6.4 中没有删除引用的选项。它刚刚被删除。其余步骤似乎有效
  • 这似乎适用于 Xcode 10.2.1。我的迁移是一些属性名称更改,所以没什么大不了的。
【解决方案2】:

我刚刚发现需要这样做。我创建了一个新的模型版本,然后意识到我根本不需要它。我惊讶地发现无法从 Xcode 中删除它(我可以找到)。不过,要删除它,我做了以下操作:

首先我确定它不是我当前的模型版本。然后我去了 Finder 并找到了我的 *.xcdatamodeld 文件。右键单击并在其上显示包内容。在那里你会找到实际的模型文件并且可以删除它。

这仍然不会从 Xcode 中删除它,它会在文件和组中显示为红色。要阻止这种情况发生,请返回 Finder 并在您的主 *.xcodeproj 文件上显示包内容(您可能需要确保先备份此文件)。在那里打开并编辑 project.pbxproj 查找您的模型版本名称,在我的情况下为“interval 8”。对我来说,它出现在两条不同的线上。我删除了这些行,现在它已从 Xcode 中完全删除。

【讨论】:

  • @Daniel_Wood,是的,我也找到了手动操作的方法,但要小心。它可能会导致一些问题......我不得不重新这样做几次,它有时也会切换活动和非活动版本,然后当你重置正确的版本时,它不会将它移动到列表的顶部(有时)会导致更多问题!非常感谢您的意见。他们会删除此功能似乎很奇怪-我们永远不必进入 .xcodeproj 文件!
【解决方案3】:

这在 XCode 10.3 中对我有用,而在删除整个模型并再次添加时不会出现排序问题:

  1. 选择您要删除的模型版本以外的任何模型版本。
  2. 在 XCode 中,右键单击 .xcdatamodeld 文件并选择“在 Finder 中显示”。
  3. 关闭 XCode。
  4. 在查找器中,右键单击同一文件并选择“显示包内容”。
  5. 记下您要删除的模型的名称,然后从 Finder 中将其删除。
  6. 仍在 Finder 中,导航到项目文件 (.xcodeproj)。
  7. 右键单击并使用Atom 或任何其他编辑器打开。
  8. 从“项目”窗格中打开 project.pbxproj 文件。
  9. 删除包含您删除的模型名称的所有行(例如:“ABC 17.xcdatamodel”)。您会发现两行类似于以下内容:

9D88880323C545B800A789B9 / ABC 17.xcdatamodel / = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "ABC 17.xcdatamodel"; sourceTree = "";

9D88880323C545B800A789B9 / ABC 17.xcdatamodel /,

请注意,如果您找到第三行,它将类似于:

currentVersion = 9D88880323C545B800A789B9 / ABC 17.xcdatamodel /;

 That means it is the currently selected model. Never delete this line. Just change the text to another model version.
  1. 重新打开 XCode。

【讨论】:

  • 我发现提到(以及指向)Atom 的链接很有帮助,因为我不确定要使用什么编辑器。
【解决方案4】:

我的回答根本不是针对特定问题的,但它既快速又有效。对于那些使用 git。您可以丢弃未暂存的更改。

git stash save --keep-index

然后,如果您愿意,可以使用 git stash drop 命令删除该存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2023-01-12
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多