有时,我需要将领域数据库从iOS转移到watchOS。我是通过以下方式做到的:
watchOS部分:
以上一切正常。但是,当我请求领域对象时,它们仍然与旧数据库相同,尽管磁盘上的领域文件已经是最新的。
我试图使数据库无效并再次获得该领域。由
self.realm.invalidate()
self.realm = try! Realm(configuration: Realm.sharedConfiguration)
// get all realm objects I need. those realm objects are class properties
,然后获取所有领域对象。没用。
然后,我尝试使数据库无效,并将领域设置为另一个领域,然后通过以下方式将其设置回
self.realm.invalidate()
self.realm = try! Realm()
self.realm = try! Realm(configuration: Realm.sharedConfiguration)
,然后获取所有领域对象。也不行。
最终的工作是通过
将领域设置为另一个领域,并获取所有对象,然后将其重新设置,并再次获取所有对象。self.realm.invalidate()
self.realm = try! Realm()
// get all realm objects I need
self.realm = try! Realm(configuration: Realm.sharedConfiguration)
// get all realm objects I need
现在可以使用。但是,如果有人告诉我有更好的方法,我会很高兴。