领域iOS:保存后对象引用设置为零
我有两门课:公司和员工。两者都继承领域对象类领域iOS:保存后对象引用设置为零,ios,realm,Ios,Realm,我有两门课:公司和员工。两者都继承领域对象类 class Company:Object { var name:String = "" var employee:Employee? override static func primaryKey() -> String? { return "name" } } class Employee:Object { var name:String = "" var age:Int = 0
class Company:Object {
var name:String = ""
var employee:Employee?
override static func primaryKey() -> String? {
return "name"
}
}
class Employee:Object {
var name:String = ""
var age:Int = 0
override static func primaryKey() -> String? {
return "name"
}
}
填充对象
var emp = Employee()
emp.name = "Sachin"
emp.age = 35
var comp = Company()
comp.name = "BCCI"
comp.employee = emp
println("Before: \(comp.employee)")
var realm = Realm()
realm.write {
println("Before Add: \(comp.employee)")
realm.add(comp, update: true)
println("In Block: \(comp.employee)")
}
println("After: \(comp.employee)")
结果:
前:员工{
name=Sachin;
年龄=35岁;
}添加前:员工{ name=Sachin; 年龄=35岁; }
在块中:无
之后:零 问题:
为什么公司对象的employee属性在
realm.add()操作之后为零?有什么想法吗?对于所有领域Swift属性(除了列表
),您需要将属性声明为动态
。将模型定义更改为以下内容应该会有所帮助
class Company:Object {
dynamic var name:String = ""
dynamic var employee:Employee?
override static func primaryKey() -> String? {
return "name"
}
}
class Employee:Object {
dynamic var name:String = ""
dynamic var age:Int = 0
override static func primaryKey() -> String? {
return "name"
}
}
正如-inwrite
,但在add
之前……它也会打印write块中的值,它会在add之后设置为nil,而lldb绝对不会说什么?