无法使用 Swift 4 将模型保存到 DynamoDB

Can't save models to DynamoDB using Swift 4

我使用 XCode9 和 Swift4 开始了一个新项目。我复制了用于将模型保存到 DynamoDB 的基本示例代码,但我不断收到以下错误:

Amazon DynamoDB Save Error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={__type=com.amazon.coral.validate#ValidationException, message=Supplied AttributeValue is empty, must contain exactly one of the supported datatypes}

我的项目只包含提供的示例代码,没有其他任何内容,我怎样才能保存我的模型?

DynamoDB 似乎还不支持 Swift4。我下载了 AWS (MySampleApp) 提供的示例项目,并将目标的构建设置 Swift Language Version 设置为 Swift 4.0,稍作修改以便编译,我得到了同样的错误。

将示例应用程序和我自己的项目中的 Swift Language Version 减少到 Swift 3.2 解决了这个问题。

Swift 4 得到正确支持之前的解决方法是将

@objcMembers

在模型 class 的 class 声明之前,如本错误报告中所述。

https://github.com/aws/aws-sdk-ios/issues/750

这解决了我的问题,而无需降级到 Swift 3.