【问题标题】:Invalid redeclaration on CoreData classesCoreData 类的无效重新声明
【发布时间】:2017-03-17 13:11:10
【问题描述】:

我正在使用 CoreData,在一个名为“RoleName”的实体上工作。

问题是:我在模型中单击“创建 NSManagedObject 子类”,因此它会自动为我的实体创建类。

但是,在类的声明中,我得到了这个错误:

“角色名称”的重新声明无效

即使我没有任何其他同名的班级。

【问题讨论】:

  • 您找到解决方案了吗?你在使用 Xcode8 和 ios 10 吗?
  • 是的,我还没有解决办法。
  • Deepukjayan 的回答应该适合您。它和我一起工作。

标签: ios swift core-data nsmanagedobject


【解决方案1】:

这是因为 Xcode 自己处理所有这些。我觉得这有点麻烦,因为自动生成的类没有我的所有属性。

所以请按照以下步骤来获得它原来的样子:

  • 删除您已经为核心数据创建的任何类。
  • 将 class.Module 设置为当前产品模块

  • 将 Class.codegen 设置为 Manual/None

  • 现在选择您的实体并创建 NSmanagedobject 子类

  • 一切就绪

【讨论】:

  • “当前产品模块”这一步非常有必要。谢谢@Deepukjayan
  • 太棒了!没有这一步Delete what ever classes you already made for core data.
【解决方案2】:

来自苹果:Whats new in Core Data

Xcode 自动子类生成

Xcode 现在支持在建模工具中自动生成 NSManagedObject 子类。在实体检查器中:

Manual/None 是默认的,也是以前的行为;在这种情况下,您应该实现自己的子类或使用 NSManagedObject。 类别/扩展在名为 ClassName+CoreDataGeneratedProperties 的文件中生成类扩展。你需要 声明/实现主类(如果在 Obj-C 中,通过标题 扩展名可以导入名为 ClassName.h)。 类定义生成名为 ClassName+CoreDataClass 的子类文件以及为 类别/扩展。

生成的文件放置在 DerivedData 中,并在模型保存后的第一次构建时重新构建。它们也被 Xcode 索引, 所以命令单击引用并按文件名快速打开是可行的。

您无需手动为NSManagedObjects 创建子类。

我建议您删除使用 NSManagedObjects 创建的文件(将它们移至废纸篓)并转到 DataModel Inspector 中 Codegen 下的每个实体选择:Manual / None 并创建子类。

【讨论】:

  • 很抱歉我的问题并不清楚。不管怎样,我自动生成了子类
猜你喜欢
  • 1970-01-01
  • 2018-11-09
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
相关资源
最近更新 更多