我可以在 AWSDynamoDBModel 的子类中使用 swift 字典吗?

Can I use a swift dictionary in a subclass of AWSDynamoDBModel?

我有一个 class 继承自 AWSDynamoDBModel 并遵守 AWSDynamoDBModeling 协议。示例:

class ProfileDatabaseModel : AWSDynamoDBModel, AWSDynamoDBModeling {
    var userid: String
    var firstName: String
    var lastName: String
    var someOtherStuff: [String: String] // IS THIS OK?

    // assume some other details here, like initializations

    class func dynamoDBTableName() -> String! {
        return "atable"
    }

    class func hashKeyAttribute() -> String! {
        return "userid"
    }
}

使用这样的 class,我可以执行以下几行,使用此 class 的实例化中的数据更新 DynamoDB:

var db = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper()
var model = ProfileDatabaseModel()
// fill in model data
let task: BFTask = db.save(model)

我的问题是:我可以在对象中包含那个字典吗?这适用于对象映射器吗?如果不是作为 Swift 字典,它可以用作 NSDictionary 吗?或者,我需要将其翻译成 JSON 格式吗?

目前,AWSDynamoDBObjectMapper支持:

  1. NSNumber
  2. NSString
  3. NSData
  4. NSArray 以上三种数据类型

NSDictionary 不受支持,但我们正在评估如何在即将发布的版本中支持地图数据类型。