私は以前DynamoDBを使用していませんでしたが、AmazonのウェブサイトのiOSドキュメントを読んだだけです。この2つを統合することは可能で、比較的簡単であるはずです。
Realmと同じ方法で、DynamoDBでデータモデルを定義するように見えます。AWSDynamoDBObjectModel
のサブクラスを作成し、プロパティを追加します。この場合、一致するプロパティが同じRealm Object
(またはObjective-CではRLMObject
)を作成していれば、理論上、DynamoDBオブジェクトをRealmに直接渡して保存することができます。
let realm = try! Realm()
try! realm.write {
realm.create(MyRealmSubclass.self, value: MyDynamoDBObject, update: true)
}
Realmは、KVCを使用して、それに渡されたオブジェクトがモデルオブジェクトのスキーマに準拠しているかどうかを確認し、その情報を自動的に取得して保存することができます。
(NB:update:
が正しく動作するためには、オブジェクトが共通の主キープロパティも共有する必要があります)。
アプリのオフライン中にRealm内のローカルに保存されたデータを変更してから、その変更されたデータをプッシュすると、デバイスはオンラインに戻ります。 AWSにプッシュバックするために、RealmモデルオブジェクトをDynamoDBオブジェクトに変換し直します。
ブール値hasChanges
フラグ、またはlastModifiedDate
日付オブジェクトなど、追加のプロパティをRealmモデルに追加して、オフラインオブジェクトにアップロードが必要な変更があることを確認することができます。
追加の説明が必要な場合はお知らせください。
(フル開示:私はレルムのために働く)
出典
2016-02-02 04:21:34
TiM
どのような素晴らしいアイデア!私はそれを行って、あなたに戻ってきます。 –
目的コードCに相当するコードは何でしょうか? –
Objective-Cの同等のAPIメソッドは '[RLMObject createOrUpdateInRealm:withValue:]'です! :) – TiM