Ios 保存后,作为成员的领域对象为零
我面临一个问题,一个领域对象有另一个领域对象作为成员,它在添加到数据库后总是Ios 保存后,作为成员的领域对象为零,ios,database,swift,realm,Ios,Database,Swift,Realm,我面临一个问题,一个领域对象有另一个领域对象作为成员,它在添加到数据库后总是nil class MedPack: Object { dynamic var uuid = NSUUID().UUIDString dynamic var medicine: Medicine? convenience init(medicine: Medicine) { self.init() self.medicine = medicine }
nil
class MedPack: Object {
dynamic var uuid = NSUUID().UUIDString
dynamic var medicine: Medicine?
convenience init(medicine: Medicine) {
self.init()
self.medicine = medicine
}
override static func primaryKey() -> String? {
return "uuid"
}
}
添加后,对对象Medicine
的引用始终为零
class Medicine: Object {
var uuid = NSUUID().UUIDString
var name: String?
override static func primaryKey() -> String? {
return "uuid"
}
}
对象的创建
let medPack = MedPack(medicine: med)
添加到数据库
static let sharedInstance = DBHelper()
var realmDb: Realm!
private init() {
realmDb = try! Realm()
}
func store(object: Object) {
try! self.realmDb.write {
self.realmDb.add(object)
}
}
将此代码与某个领域示例项目进行比较后,似乎简单地将
对象设置为另一个对象的子对象也不会隐式地将其写入数据库
相反,您可能需要稍微重构代码,但在将Medicine
对象的关系设置为MedPack
然后将MedPack
写入数据库之前,请确保在写入事务中将Medicine
对象显式添加到域中。您如何检测到该对象为零?“监视”窗口始终显示实例成员的nil,无论这是否为真。我认为这与王国的懒惰本性有关objects@ClaudioRedi当我从数据库中获取对象时,Medicine
对象不会被保存,但是MedPack
被保存。请原谅我的无知,Medicine子类的MBObject是什么?@caseynolan抱歉,这也应该是对象
class MedPack: Object {
dynamic var uuid = NSUUID().UUIDString
dynamic var medicine: Medicine?
convenience init(medicine: Medicine) {
self.init()
self.medicine = medicine
}
override static func primaryKey() -> String? {
return "uuid"
}
}