這是一個Parse後果的一點點。我應該如何支持使用DynamoDB和iOS的離線模式?
我正在移動應用程序以使用DynamoDB,但它似乎不支持任何種類的脫機模式。
我該怎麼做?
我想使用Realm,但我最終不得不管理同步和對象< - > noSQL。我是否應該在一行上使用標誌來表示它已同步?
我應該嘗試保持行像扁平一樣嗎?
我不認爲Cognito的同步部分適用於此。
這是一個Parse後果的一點點。我應該如何支持使用DynamoDB和iOS的離線模式?
我正在移動應用程序以使用DynamoDB,但它似乎不支持任何種類的脫機模式。
我該怎麼做?
我想使用Realm,但我最終不得不管理同步和對象< - > noSQL。我是否應該在一行上使用標誌來表示它已同步?
我應該嘗試保持行像扁平一樣嗎?
我不認爲Cognito的同步部分適用於此。
我之前沒有使用過DynamoDB,但我只是通過Amazon網站上的iOS文檔進行了閱讀,並且我認爲集成這兩個應該是可能的,並且相對容易。
看起來像您在DynamoDB中定義數據模型的方式與Realm相同:創建AWSDynamoDBObjectModel
的子類並添加屬性。在這種情況下,只要您創建了具有相同匹配屬性的Realm Object
(或RLMObject
),您應該(理論上)只需將DynamoDB對象直接傳遞給Realm即可保存:
let realm = try! Realm()
try! realm.write {
realm.create(MyRealmSubclass.self, value: MyDynamoDBObject, update: true)
}
Realm在能夠使用KVC查看傳遞給它的任何對象是否符合其模型對象的模式並自動檢索並保存該信息方面非常聰明。 (注意:爲使update:
正常工作,您還需要確保您的對象也共享一個公共主鍵屬性)。
從它的聲音中,如果您希望在應用程序脫機時修改Realm中本地保存的數據,然後推送修改後的數據,設備將恢復在線狀態,那麼它將由您決定將Realm模型對象轉換回DynamoDB對象以便將其推回到AWS。
您當然可以向Realm模型添加其他屬性,例如布爾型hasChanges
標誌或lastModifiedDate
日期對象,以便能夠檢查脫機對象是否有需要上載的更改。
讓我知道你是否需要任何額外的澄清!
(全面披露:我的王國工作)
真是個好主意!我會給它一個回去找回你。 –
什麼是目標c中的等效代碼? –
Objective-C中的等效API方法將是'[RLMObject createOrUpdateInRealm:withValue:]'! :) – TiM