代码之家  ›  专栏  ›  技术社区  ›  Owen Zhao

替换领域数据库文件并创建新数据库会对watchOS产生影响

  •  2
  • Owen Zhao  · 技术社区  · 8 年前

    有时,我需要将领域数据库从iOS传输到watchOS。我是这样做的:

    watchOS部件:

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

    我试图使数据库无效并再次获取该领域。通过

    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 回复  |  直到 8 年前