替换Realm数据库文件并制作新数据库将在watchOS上生效

时间:2018-07-20 10:42:53

标签: ios realm invalidation watch-os

有时,我需要将领域数据库从iOS转移到watchOS。我是通过以下方式做到的:

watchOS部分:

  1. 发送请求消息
  2. 接收文件
  3. 删除磁盘上的当前领域文件
  4. 将收到的新文件移动到上一个已删除文件的网址

以上一切正常。但是,当我请求领域对象时,它们仍然与旧数据库相同,尽管磁盘上的领域文件已经是最新的。

我试图使数据库无效并再次获得该领域。由

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

现在可以使用。但是,如果有人告诉我有更好的方法,我会很高兴。

0 个答案:

没有答案