更新到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.重复此过程两次以验证相同的结果
感谢您的帮助!
答案 0 :(得分:45)
好的,我想出了一个解决方法,但看起来这是一个错误。
对于要重新生成的所有实体,请从磁盘中删除现有文件,然后尝试编辑 - >创建NSManagedObject子类并选择已从磁盘中删除的类。
重新生成当前不存在的文件。这为我解决了这个问题。
答案 1 :(得分:0)
我遇到了同样的问题,在选择“替换”文件后,Xcode没有生成新属性 只需修复下一步:
答案 2 :(得分:0)
这需要一种解决方法,但具体来说,我找到的最快的方法是:
设置项目,使模型中生成的文件位于自己的文件夹中。
当您需要向模型添加/更改属性时,多选一组自动生成的文件,然后点击退格(并选择将它们移至废纸篓)
从模型中重新生成一组NSManagedObject文件,返回到同一文件夹
答案 3 :(得分:0)
在按照建议删除文件和/或数据模型本身之前,请检查您是否在实体/类下的Xcode数据模型检查器中添加了模块名称。如果有,删除它将解决自动生成实体类的问题。但是,它会通过首先添加它来重新引入您修复的问题(请参阅Swift - CoreData: warning: Unable to load class named)...考虑到这一点,在生成的类之上添加@objc(<ClassName>)
似乎是更好的解决方案而不是在检查器中添加模块名称。
答案 4 :(得分:0)
老问题。但是这是我的解决方案:只需对其进行清洁并再次构建即可。
菜单:项目>清理构建文件夹 然后重新构建。
顺便说一句,这是Xcode 9的时间。