在iOS应用程序

时间:2017-02-13 12:59:43

标签: ios objective-c amazon-web-services amazon-dynamodb

我有一个使用已投入生产的AWS Mobile iOS SDK的移动应用。该应用程序使用DynamoDB直接存储和检索用户数据(中间没有任何API层)。现在我想通过添加一个新字段来修改应用程序中现有的DynamoDB对象模型。新的应用程序版本可以很好地存储和检索基于这个新的DynamoDB模型的数据。我的问题是这个新字段的添加是否会影响使用旧的DynamoDB对象模型的当前应用版本?由于旧的DynamoDB对象模型中缺少字段会导致当前应用版本崩溃吗?

示例:

假设我有一个名为MyUserObject的类,来自AWSDynamoDBObjectModel,包含字段' name'和' email'。

@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling>

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *email;

@end

现在我想添加另一个字段&#39; country&#39;在MyUserObject类中:

@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling>

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *email;
@property (nonatomic, strong) NSString *country;

@end

那么,这个添加是否会影响使用旧的DynamoDB对象模型的当前应用版本?

1 个答案:

答案 0 :(得分:0)

简短的回答是,不。

DynamoDB是一个无架构的商店。

  • 读取期间:如果客户端的AWSDynamoDBObjectModel具有的属性多于DynamoDB中的属性,反之亦然,则会忽略额外的属性。
  • 写入期间:有4种不同的保存行为选项,如文档here所述。默认值AWSDynamoDBObjectMapperSaveBehaviorUpdate使未建模的属性不受影响,应该可以正常使用。