我正在制作一个纯 Swift 项目,当我在模型文件中创建实体时,然后使用 Editor->Create NSManagedObject Subclass 为实体创建类文件,在模型中,实体的 Class 属性变为 PRODUCT_MODULE_NAME.entityName,这将导致核心数据无法加载 NSManagedObject 子类实例。
我知道如何通过使用 @objc() 并重命名模型文件中的类属性来解决这个问题,但是有什么更好的主意吗?
最佳答案
两种选择:
将 PRODUCT_MODULE_NAME 替换为此build设置的值。默认情况下,它将与您的 TARGET_NAME 相同。 Class 字段中的完整值应该类似于 MyApp.entityName。
在 Class 字段中仅使用 entityName 并在您的 swift 类前面加上 @objc(entityName)
数据模型中的 representedClassName 字段似乎在运行时进行评估,因此它需要一个文字值。
关于Swift 核心数据 : auto-generating managed object subclass makes the class name to PRODUCT_MODULE_NAME. 模型中的实体名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29573561/