1
我正在尝试登录或注册一个用户并将它们连接到现有的领域。然后,根据存储在该领域的信息,我可能需要它们连接到不同的领域。在领域之间切换(iOS/Swift 3)
是不是可以尝试!在最初配置完成后具有不同配置的领域?它气馁了吗?它是否需要在最初的DispatchQueue之外完成?
下面是代码:
SyncUser.logIn(with: usernameCredentials, server: URL(string: "http://11.22.333.0:9080")!) {
user, error in
guard let user = user else {
fatalError(String(describing: error))
}
DispatchQueue.main.async {
let configuration = Realm.Configuration(
syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://11.22.333.0:9080/ab56realmURL/NameOfRealm1")!)
)
self.realm = try! Realm(configuration: configuration)
if (someCheckOfData in realm) {
let configuration2 = Realm.Configuration(
syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://11.22.333.0:9080/ab56realmURL/NameOfRealm2")!)
)
self.realm = try! Realm(configuration: configuration2)
}
}
}
非常感谢您的帮助!
感谢您的回答!用这段代码我已经朝着自己的目标迈进了。它的哪一部分保持特定的Realm参考?主要Realm设置为默认配置的含义是什么?我只尝试!领域(配置:)当用户第一次登录/注册或当我需要切换到不同的领域。之后,我只是使用尝试! itemName.realm?.write {进行更改,并通过notificationToken接收更新,以了解它们连接到的Realm的任何更改。一旦我将self.realm设置为配置2,我最初连接到的领域被覆盖,对吧? – RanLearns
@RanLearns不用担心!如果这解决了您的问题,请不要忘记将其标记为已接受的答案。 :)当你将一个属性添加到名为'realm'的类中,并且你手动设置'self.realm = realm'时,这就是我的意思是挂在一个引用上。通过主Realm,我的意思是如果你不想每次都使用'Realm(configuration:)',你可以将'Realm.Configuration.defaultConfiguration'设置为当你调用'Realm()'时返回的Realm。 – TiM
啊好的!不,它不会被覆盖。它将作为用户帐户中的单独条目存在。 – TiM