Ios CoreData Exc_bad_访问代码=1,带有子实体

Ios CoreData Exc_bad_访问代码=1,带有子实体,ios,swift,core-data,exc-bad-access,Ios,Swift,Core Data,Exc Bad Access,我需要你的帮助,我仍然有一个漂亮的EXC\u BAD\u ACCESS错误在这行self.clinic!。复制带DTO(临床医生DTO) 控制台:po自助诊所 Optional(<NSManagedObject: 0x7a7bd240> (entity: Clinic; id: 0x7a7bbe10 <x-coredata://7B916AD3-1989-426F-932F-0A62C755F2B4/Clinic/p1> ; data: <fault>))

我需要你的帮助,我仍然有一个漂亮的
EXC\u BAD\u ACCESS
错误在这行
self.clinic!。复制带DTO(临床医生DTO)

控制台:
po自助诊所

Optional(<NSManagedObject: 0x7a7bd240> (entity: Clinic; id: 0x7a7bbe10 <x-coredata://7B916AD3-1989-426F-932F-0A62C755F2B4/Clinic/p1> ; data: <fault>))
我做错了什么

谢谢;)


编辑:
BaseStoredObject
NSManagedObject

的子类,请在数据模型编辑器中检查实体诊所是否指定了正确的类(即诊所)。是的,它是。。最后,我在我的项目中添加了MOGenerator来摆脱这个bug。现在没事了,但我不知道这个问题是什么在数据模型编辑器中检查实体诊所指定了正确的类(ie诊所)。是的,它是。。最后,我在我的项目中添加了MOGenerator来摆脱这个bug。现在没事了,但我不知道这是什么问题
@objc(UserProfile)
class UserProfile: BaseStoredObject {

    override class func entityName() -> String {
        return "UserProfile"
    }

    override func copyWithDTO(dto: BaseDTO) {
        if let userProfileDTO = dto as? UserProfileDTO {
            self.id = userProfileDTO.id
            self.login = userProfileDTO.login
            self.password = userProfileDTO.password
            self.lastname = userProfileDTO.lastname
            self.email = userProfileDTO.email
            self.createdOn = userProfileDTO.createdOn
            self.gender = userProfileDTO.gender
            self.userProfileType = userProfileDTO.userProfileType
            self.firstname = userProfileDTO.firstname
            self.fullname = userProfileDTO.fullname
            if let clinicDTO = userProfileDTO.clinic {
                if let unwrappedClinic = self.clinic {
                    unwrappedClinic.copyWithDTO(clinicDTO)
                } else {
                    self.clinic = Clinic(entity: NSEntityDescription.entityForName("Clinic", inManagedObjectContext: self.managedObjectContext!)!, insertIntoManagedObjectContext: self.managedObjectContext)
                    self.clinic!.copyWithDTO(clinicDTO) //  !! EXC_BAD_ACCESS (code=1, address=0x....)
                }

            }
        } else {
            fatalError("copyWithDTO: must be sent with UserProfileDTO")
        }
    }

}

@objc(Clinic)
class Clinic: BaseStoredObject {

    override class func entityName() -> String {
        return "Clinic"
    }

    override func copyWithDTO(dto: BaseDTO) {
        if let clinicDTO = dto as? ClinicDTO {
            self.id = clinicDTO.id
            self.name = clinicDTO.name
            self.phoneNumber = clinicDTO.phoneNumber
            self.phoneNumber24hours = clinicDTO.phoneNumber24hours
            self.nurseContactPhoneNumber = clinicDTO.nurseContactPhoneNumber
            self.emergencyPhoneNumber = clinicDTO.emergencyPhoneNumber
            self.internalClinicId = clinicDTO.internalClinicId
            self.webserviceURL = ""
        } else {
            fatalError("copyWithDTO: must be sent with ClinicDTO")
        }
    }

}


extension UserProfile {

    @NSManaged var id: String?

    @NSManaged var login: String?
    @NSManaged var password: String?
    @NSManaged var lastname: String?
    @NSManaged var firstname: String?
    @NSManaged var email: String?
    @NSManaged var createdOn: NSDate?
    @NSManaged var userProfileType: NSNumber?
    @NSManaged var gender: NSNumber?
    @NSManaged var fullname: String?

    @NSManaged var clinic: Clinic?

}