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 子类的主要内容,如果未能解决你的问题,请参考以下文章