ios - 我应该如何支持使用 DynamoDB 和 iOS 的离线模式?

标签 ios amazon-dynamodb realm

这是对 Parse 的一点影响。

我正在移动一个应用程序以使用 DynamoDB,但它似乎不支持任何类型的离线模式。

我应该怎么做?

我想使用 Realm,但我最终不得不管理同步和对象 <-> noSQL。我应该在一行上使用标志来指示它已同步吗?

我是否应该像在 Dynamo 中一样尽量保持平整?

我认为 Cognito 的同步部分不适用于此处。

最佳答案

我以前没有使用过 DynamoDB,但我只是通读了亚马逊网站上的 iOS 文档,我认为集成两者应该是可能的,而且相对容易。

看起来您在 DynamoDB 中定义数据模型的方式与 Realm 相同:创建 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 查看传递给它的任何对象是否符合其模型对象的架构,并自动检索和保存该信息。

(注意:为了使 update: 正常工作,您还需要确保您的对象也共享一个公共(public)主键属性)。

从它的声音来看,如果您希望在应用程序离线时修改 Realm 中本地保存的数据,然后将修改后的数据推送到设备重新在线,那么这将取决于您将 Realm 模型对象转换回 DynamoDB 对象,以便推送回 AWS。

您当然可以向 Realm 模型添加其他属性,例如 bool hasChanges 标志或 lastModifiedDate 日期对象,以便能够检查离线对象有需要上传的更改。

如果您需要任何其他说明,请告诉我!

(全面披露:我为 Realm 工作。)

关于ios - 我应该如何支持使用 DynamoDB 和 iOS 的离线模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35080103/

相关文章:

ios - URLSessionDownloadTask 奇怪的行为

amazon-web-services - AWS Elasticsearch超出索引中的总字段数限制

java - 递增的 DynamoDB 编号字段未保留

amazon-web-services - 是否可以使用 cognito 注册用户并一步创建 dymado db 用户配置文件?

ios - 如何在 swift 4 中访问过滤器中的 Realm 模型列表?

ios - 删除数据而不是使用迁移

ios - 将 UITableView 与 Storyboard一起使用,但使用单独的数据源

ios - 在 iOS 9 中更改方向

ios - 如何比较 ios 中大于 3 秒的时间

android - RealmResults 大小返回零