无法在 CoreData 子类中创建新属性? iOS8 Swift3

Posted

技术标签:

【中文标题】无法在 CoreData 子类中创建新属性? iOS8 Swift3【英文标题】:Can't create new properties in CoreData subclass? iOS8 Swift3 【发布时间】:2017-03-18 15:19:31 【问题描述】:

我在 Xcode 中创建了一个数据模型,选择了我的所有实体,在编辑器中单击 -> 创建 NSManagedObject 子类。它在我的工作区范围内创建了所有 +CoreDataProperties 和 +CoreDataClass,而不是我的项目。

然后我继续编辑类文件如下:

public class Child: NSManagedObject 
    enum Gender:Int
        case male=0,female,unknown
    

    var uuid:UUID = UUID()
    var gender:Gender?

    convenience init(name:String,birthday:String,gender:Int)
        self.init()
        self.name = name
        self.birthday = Conversor.convertDate(dateString: birthday)
        if(gender >= 0 && gender <= 2)
            self.gender = Gender(rawValue: gender)!
        
    

    func setGender(gender:Int)
        self.gender = Gender(rawValue: gender)!
    
    func setBirthday(birthday:Date?)
        self.birthday = birthday
    

我没有触摸属性文件。 我了解 CoreData 的所有地方都告诉我,Xcode 不会再次生成类文件,并且可以安全地编辑它们,但是文件中有一条注释告诉我相反的情况

//  This file was automatically generated and should not be edited.

当我尝试在我的项目中使用该类时,自动完成无法找到性别和 uuid,如果我尝试使用它,它会显示:

'Gender is not a member type of 'Child'

在许多其他此类错误中

项目构建阶段中没有这些文件的引用

这样做的正确方法是什么? 如何编辑 CoreData 类,以便拥有与 CoreData 无关的其他属性和方法?

非常感谢您提前 :)

【问题讨论】:

【参考方案1】:

请在右侧面板中为您的实体选择代码生成为手动/无。然后继续单击 Editor -> Create NSManagedObject Subclass。

【讨论】:

非常感谢您的回答。我做到了,它仍然在工作区范围内创建。现在它在项目中找不到孩子。它说“使用未声明的类型'孩子' 清理并重新启动 Xcode 后,它运行良好。非常感谢!

以上是关于无法在 CoreData 子类中创建新属性? iOS8 Swift3的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 自动迁移不会在我的新模型中创建新实体

无法在 VBA 中创建新枚举

无法在 iTunes Connect 中创建新应用

使用简单的 init 在测试中创建 CoreData 对象

如何在 iOS 编程中在 Swift 中创建实体文件?

无法在 android studio 中创建新活动