问题是,我可以添加与我的对象的关系,它暂时工作,但领域不保存更改,当我退出应用程序并重新启动ist时,关系就消失了。
在第一个视图中,我创建了主对象。这是班级:
class UserListClass: Object {
dynamic var UserListName = ""
let Medis = List<MediClass>()
override static func primaryKey() -> String? {
return "UserListName"
}
}
我创建对象的代码:
let realm = try! Realm()
let newList = UserListClass ()
newList.UserListName = textField.text!
try! realm.write {
realm.add(newList)
}
这没有问题,当我重新启动应用程序时,我添加的对象也在那里。
当用户点击编辑时,它将打开下一个视图:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showUserlistEdit" {
let editViewController = segue.destinationViewController as! MediUserlistEditViewController
editViewController.userlist = userlist
}
}
在下一个视图中,代码将所选条目添加到列表中,我尝试了两个版本,但两者都有结果,它只保存应用程序运行时的关系。当我重新启动它时,它们就不在了。
首先尝试:
let realm = try! Realm()
try! realm.write {
userlist.Medis.append(medi)
realm.add(userlist, update: true)
}
第二次尝试:
let realm = try! Realm()
try! realm.write {
userlist.Medis.append(medi)
}
答案 0 :(得分:0)
问题是
let realm = try! Realm()
文档指定
// Get the default Realm
let realm = try! Realm()
// You only need to do this once (per thread)
您在两个视图控制器上都做了,并且无法保证默认Realm的路径是相同的。它可能适用于实际设备但不适用于模拟器。 试试这个并删除所有其他事件
// Put this inside your Real class Definition/Declaration file
let realm = try! Realm()
希望这个帮助