2017-01-16 60 views
3

新境界移动平台广告与离线支持,但大多数教程并不说明如何在示例工程...realm移动平台,离线时如何连接?

例如,在他们todo app example这是用来连接到服务器数据库

代码
SyncUser.logIn(with: .usernamePassword(username: username, password: password, register: false), server: URL(string: "http://127.0.0.1:9080")!) { user, error in 
guard let user = user else { 
    fatalError(String(describing: error)) 
} 

DispatchQueue.main.async { 
    // Open Realm 
    let configuration = Realm.Configuration(
     syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://127.0.0.1:9080/~/realmtasks")!) 
    ) 
    self.realm = try! Realm(configuration: configuration) 

    // Show initial tasks 
    func updateList() { 
     if self.items.realm == nil, let list = self.realm.objects(TaskList.self).first { 
      self.items = list.items 
     } 
     self.tableView.reloadData() 
    } 
    updateList() 

    // Notify us when Realm changes 
    self.notificationToken = self.realm.addNotificationBlock { _ in 
     updateList() 
    } 
} 
} 
当用户下线

,返回user变量是零,你不能使用配置的领域在服务器上,但代码不说明如何从镜像本地数据库得到同步数据.. 。每次用户上网时,您是否必须手动将在线数据库中的项目复制到手动创建的本地数据库?

回答

5

后成功登录(或注册),它在设备的钥匙串中缓存的用户,如果您的应用程序支持多用户all即使在您脱机时,您可以通过currentUser财产或可选择地检索。

请注意,如果您致电logout对用户,那么它将被从钥匙链中删除,你将不得不在线并重新登录。