如何在 Xcode 删除旧的/未使用的数据模型版本

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

43809 次浏览

我只是觉得有必要这么做。我创建了一个新的模型版本,然后意识到我根本不需要它。我惊讶地发现,没有办法从 Xcode 删除(我能找到的)它。不过,为了移除它,我做了以下几件事:

首先,我确定它不是我现在的模型版本。然后我去了 Finder 找到了我的 * 。Xcdatamodeld 文件。右键单击并显示包的内容。在那里您将找到实际的模型文件,并可以删除它。

这仍然没有将它从 Xcode 移除,它将在文件和组中显示红色。要阻止这种情况发生,请返回到 Finder 并在主 * 上显示包内容。Xcodeproj 文件(您可能希望首先备份这个文件)。在这里,打开并编辑 project.pbxproj,在您的模型版本名称上做一个 find,在我的例子中是“间隔8”。对我来说,它出现在两条不同的线上。我移除了这些线,现在它已经完全从 Xcode 移除了。

这是黑客技术,不过这招对我很管用:

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

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

我的答案并不是针对具体问题,但它很快,而且很有效。对于那些使用 git。您可以直接丢弃未暂存的更改。

git stash save --keep-index

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

这在 XCode 10.3中对我很有效,在删除整个模型并重新添加时没有发生排序问题:

  1. 选择要删除的模型版本以外的任何模型版本。
  2. 在 XCode 中,右键单击. xcdatamodeld 文件并选择“ Show in Finder”。
  3. 关闭 XCode。
  4. 在 finder 中,右键单击相同的文件并选择“显示包内容”。
  5. 写下要删除的模型的名称,然后从 Finder 中删除它。
  6. 仍然在 Finder 中,导航到项目文件(. xcodeproj)。
  7. 右键单击并使用 亚当或任何其他编辑器打开。
  8. 从“ Project”窗格打开 Project.pbxproj 文件。
  9. 删除包含您删除的型号名称的所有行(例如: “ ABC 17。Xcdatammodel”)。你会看到两行类似于下面的内容:

9D8880323C545B800A789B9/ ABC 17. xcdatammodel < em >/= { isa = PBXFileReference; lastKnownFileType = wrapper.xcdatammodel; path = “ ABC 17. xcdatammodel”; source ceTree = “ ;

还有

9D88880323C545B800A789B9/ ABC 17. xcdatammodel < em >/,

注意,如果你找到第三行,它会是这样的:

Current Version = 9D8880323C545B800A789B9/ ABC 17. xcdatammodel < em >/;

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