Ios 尝试删除Object类型的子对象时域崩溃
我有一个类UserObject(Object),它有SessionObject(Object)的一个属性,SessionObject有其他领域对象(TestObject,NewObject)的属性。 当我成功删除子对象和父对象之后,应用程序会因访问错误而崩溃:EXC_Bad_Access(code=EXC_I386_GPFLT)Ios 尝试删除Object类型的子对象时域崩溃,ios,swift,realm,Ios,Swift,Realm,我有一个类UserObject(Object),它有SessionObject(Object)的一个属性,SessionObject有其他领域对象(TestObject,NewObject)的属性。 当我成功删除子对象和父对象之后,应用程序会因访问错误而崩溃:EXC_Bad_Access(code=EXC_I386_GPFLT) 您正在运行到,它适用于Swift类上的动态属性。当前,Realm不会生成符合ARC对特殊命名方法的期望的访问器方法,这会导致当您的属性名称以new、copy或mutab
您正在运行到,它适用于Swift类上的
动态
属性。当前,Realm不会生成符合ARC对特殊命名方法的期望的访问器方法,这会导致当您的属性名称以new
、copy
或mutableCopy
开头时,对象被双重删除,适用于Swift类的动态
属性。当前,Realm不会生成符合ARC对特殊命名方法要求的访问器方法,这会导致当属性名称以new
、copy
或mutableCopy
开头时,对象被双重删除。更改属性名称解决了问题。你是对的。更改属性名称解决了此问题。
class UserObject: Object{
dynamic var uuid = ""
dynamic var username = ""
dynamic var session: SessionObject?
class SessionObject: Object{
dynamic var tokenType = ""
dynamic var refreshToken = ""
dynamic var test: TestObject?
dynamic var new: NewObject?
}
class TestObject: Object{
dynamic var test = ""
}
class NewObject: Object{
dynamic var test = ""
}
func deleteUser(){
guard let realm = self.realmInstance else{
return
}
guard let user = Array(realm.objects(UserObject.self)).first else{
return
}
do{
try realm.write {
if let session = user.session{
if let test = session.test{
realm.delete(test)
}
if let new = session.new{
realm.delete(new)
}
realm.delete(session)
}
realm.delete(user)
}
}catch{
}
}