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?
}