1
ログイン画面を持つアプリケーションと、ユーザがログインした後でタブバーコントローラに2つのテーブルビューを持っています。各テーブルビュー私は私のレルムデータベースに同期したいデータを持っています。複数ページのiOSアプリケーションでRealmバックエンドにデータを同期する最も良い方法は何ですか
私のレルムデータベースのセットアップは大きく次のチュートリアルに基づいています。私は、次のコードを持つことを目指し、私tableviewsのそれぞれにおいて
SyncUser.logIn(with: userCredentials, server: (url! as URL)) { user, error in
guard user != nil else {
print("Error")
self.logInMessage.text = "Invalid login details, please try again"
self.logInMessage.shake()
return
}
DispatchQueue.main.async {
self.performSegue(withIdentifier: "logInSegue", sender: self)
}
}
以下のよう
https://realm.io/docs/tutorials/realmtasks/
ユーザー認証のためのコードがあります:
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)
}
ただし、設定にはユーザーが必要です。私はこれをログイン画面から渡すべきですか、それともこの過剰ですか?事前に感謝します
あなたができる簡単なことは、 'currentUser'プロパティを持つ' UserManager'シングルトンを作成することです。ログイン時にユーザを取得すると、そのユーザを 'currentUser'に割り当てるだけで、' UserManager.shared.currentUser'のようなアプリケーション全体にアクセスできるようになります。 – dirtydanee
それはいい考えです、私はそれを考えていませんでした。ありがとう –
'Realm.Configuration.defaultConfiguration = config'でデフォルトの設定をすることができます。それで' let realm = try! 'を使うことができます。レルム() '通常。毎回SyncConfigurationを作成しなくても、シングルトンはスレッドローカル性を考慮していないので、実際には、メソッド引数として提供するRealmインスタンスから必要なものを照会することができるシングルトンが必要です。 – EpicPandaForce