Xcode 4:替换 NSManagedObject 子类

Posted

技术标签:

【中文标题】Xcode 4:替换 NSManagedObject 子类【英文标题】:Xcode 4: Replace NSManagedObject subclass 【发布时间】:2011-10-25 02:20:28 【问题描述】:

我有一个来自 Xcode 3 的项目,我通过转换过程使其与 Xcode 4 兼容。在这个项目中,我所有的 NSManagedObject 子类都在一个名为“.xcdatamodeld”的组中。

如果我使用新属性更新数据模型中的实体,我希望该属性的方法在我的实体的 NSManagedObject 子类中可用。

在 Xcode 3 中,我会选择我想要重新生成的实体,然后选择 File -> New。这将替换 .xcdatamodeld 组中的适当类。

在 Xcode 4 中,它是相同的过程,除了生成的 NSManagedObject 子类将去任何地方,除了那个 .xcdatamodeld 组。此外,我无法从该组中删除任何文件。没有任何错误消息或通知说明原因。当我按下删除键时它什么也没做。

我使用的解决方法是转到 Finder(或终端),删除旧类,然后将新生成的类移动到 .xcdatamodeld 目录。是否有我缺少的新范式或其他什么?解决方法似乎不必要地乏味。

【问题讨论】:

【参考方案1】:

似乎“xcdatamodeld group with NSManagedObject subclass files under it”范式已从 Xcode 4 中删除。它在 Xcode 4 中的工作方式是让数据模型作为文件节点存在,并让 NSManagedObject 子类完全住在项目中的不同组中。我为完成 Xcode 3 项目的更新所做的是:

    从项目中删除对数据模型的引用(引用)。

    转到终端并移动 .xcdatamodeld 下的所有 NSManagedObject 子类文件 目录到我的源目录下的新目录。 Finder 似乎阻止了对目录的访问,但终端没有。

    在“将现有文件添加到项目”菜单项下将数据模型添加回项目。

    将 NSManagedObject 子类文件添加回项目。

【讨论】:

以上是关于Xcode 4:替换 NSManagedObject 子类的主要内容,如果未能解决你的问题,请参考以下文章

替换数组中的多次出现 - Swift 4.1

Xcode 8 Beta 4 CGColor.components 不可用

如何在xcode中检索替换的文件

Unity2018.4.7导出Xcode工程报错解决方案

Unity2018.4.7导出Xcode工程报错解决方案

Xcode批量替换操作