更新到Xcode 6.0后,创建NSManagedObject子类不生成属性

时间:2014-09-15 17:16:45

标签: xcode

更新到Xcode版本6.0(6A313)后,当我向xcdatamodeld条目添加新属性时,"创建NSManagedObject子类"没有将新属性添加到生成的头文件中。关闭Xcode 6,然后运行版本5.1.1(5B1008)后,此工作正常。我重复这个过程几次,结果相同。我是否需要做一些事情来允许新的Xcode版本正确管理我的数据模型,或重新创建它们,或者这可能只是新Xcode的错误?

以下是我采取的具体步骤:
1.在Xcode 6.0(GM Seed)中打开DataModel.xcdatamodeld 2.选择正确的实体
3.单击+添加新属性
4.为新属性输入名称和选定的布尔类型 5. Editor->创建NSManagedObject子类
6.确保选中正确的数据模型,然后单击下一步 7.确保选中了正确的实体,然后单击下一步 8.选择要保存的位置(使用根项目文件夹),选择创建
9.选择"替换"在对话框中 10.在生成的头文件中查找变量。变量不存在。
11.关闭Xcode6
12.重复Xcode 5.1.1中的步骤1-10,正确工作
13.重复此过程两次以验证相同的结果

感谢您的帮助!

5 个答案:

答案 0 :(得分:45)

好的,我想出了一个解决方法,但看起来这是一个错误。

对于要重新生成的所有实体,请从磁盘中删除现有文件,然后尝试编辑 - >创建NSManagedObject子类并选择已从磁盘中删除的类。

重新生成当前不存在的文件。这为我解决了这个问题。

答案 1 :(得分:0)

我遇到了同样的问题,在选择“替换”文件后,Xcode没有生成新属性 只需修复下一步:

  • 在.xcdatamodel中更改或添加新实体后,在“组&文件”列表中选择已更改的实体类文件
  • 选择“删除” - “移至废纸篓”(如果需要复制类文件中的特定代码)
  • 现在返回.xcdatamodel并选择您更改的实体
  • 创建新的NSManagedObject子类(使用标准方式)

答案 2 :(得分:0)

这需要一种解决方法,但具体来说,我找到的最快的方法是:

  1. 设置项目,使模型中生成的文件位于自己的文件夹中。

  2. 当您需要向模型添加/更改属性时,多选一组自动生成的文件,然后点击退格(并选择将它们移至废纸篓)

  3. 从模型中重新生成一组NSManagedObject文件,返回到同一文件夹

答案 3 :(得分:0)

在按照建议删除文件和/或数据模型本身之前,请检查您是否在实体/类下的Xcode数据模型检查器中添加了模块名称。如果有,删除它将解决自动生成实体类的问题。但是,它会通过首先添加它来重新引入您修复的问题(请参阅Swift - CoreData: warning: Unable to load class named)...考虑到这一点,在生成的类之上添加@objc(<ClassName>)似乎是更好的解决方案而不是在检查器中添加模块名称。

答案 4 :(得分:0)

老问题。但是这是我的解决方案:只需对其进行清洁并再次构建即可。

菜单:项目>清理构建文件夹 然后重新构建。

顺便说一句,这是Xcode 9的时间。