ユーザーをログインまたは登録して既存のレルムに接続しようとしていました。次に、そのレルムに格納されている情報に応じて、別のレルムに接続する必要があります。レルム間の切り替え(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)
}
}
}
本当にありがとうございました。ここで
は、コードです!
あなたの答えをありがとう!私はこのコードで私の目標に向かって進歩しました。特定のレルム参照を保持しているのはどの部分ですか?プライマリレルムがデフォルト設定に設定しているとはどういう意味ですか?私は試してみます!ユーザが最初にログイン/サインアップするとき、またはそれらを別のレルムに切り替える必要があるときは、レルム(コンフィグレーション:)その後、私はちょうどtryを使用します! itemName.realm?.write {変更を加えるには、接続しているレルムのすべての変更について、notificationTokenを使用してアップデートを受け取ります。 self.realmをconfiguration2に設定すると、最初に接続した領域が上書きされます。 – RanLearns
@RanLearns心配はいりません!これであなたの質問が解決されたら、それを受け入れられた答えとしてマークすることを忘れないでください。 :) 'realm'という名前のクラスにプロパティを追加し、手動で' self.realm = realm'を設定すると、それは私がリファレンスにぶら下がっていることです。プライマリレルムでは、毎回 'レルム(設定:) 'を使用したくない場合、' Realm.Configuration.defaultConfiguration'を 'Realm()'を呼び出したときに返されるレルムに設定することができます。 – TiM
ああ大丈夫です!いいえ、上書きされません。ユーザーのアカウントには別のエントリとして存在します。 – TiM