ios - 从类 'NSObject' 和 'AWSDynamoDBObjectModel' 多重继承

标签 ios swift amazon-dynamodb

我正在尝试在 Swift 中创建 DynamoDB 对象模型类来表示我的表结构并使用它来执行 CRUD 操作。

在 AWSiOSSDKv2 库(我的版本 2.0.17)更新日志中有使用 AWSDynamoDBObjectModel 而不是 AWSDynamoDBModel 的信息。

当我的类继承自 NSObject、AWSDynamoDBObjectModel、AWSDynamoDBModeling 时,我收到以下错误(我的理解是在 Swift 中我们只能从父类(super class)继承,因此这甚至是有道理的...):

Multiple inheritance from classes 'NSObject' and 'AWSDynamoDBObjectModel'

但是,当我仅从 AWSDynamoDBObjectModel、AWSDynamoDBModeling 继承时,我收到不同的错误:

Type 'Test' does not conform to protocol 'NSObjectProtocol'

这是类:

class Test: NSObject, AWSDynamoDBObjectModel, AWSDynamoDBModeling  {
    var hashKeyString: String?
    var rangeKeyString: String?
    var firstAttribute: String?

    class func dynamoDBTableName() -> String! { return "Test" }
    class func hashKeyAttribute() -> String! { return "hashKeyAttribute" }
    class func rangeKeyAttribute() -> String! { return "rangeKeyAtrribute" }
}

我是 Swift 和 AWS 的新手,我很感激任何帮助,因为我在 Internet 上找不到任何关于这个问题的信息。

最佳答案

这解决了问题

class Test: AWSDynamoDBObjectModel, AWSDynamoDBModeling  {
var hashKeyString: String?
var rangeKeyString: String?
var firstAttribute: String?

class func dynamoDBTableName() -> String! { return "Test" }
class func hashKeyAttribute() -> String! { return "hashKeyAttribute" }
class func rangeKeyAttribute() -> String! { return "rangeKeyAtrribute" }

override func isEqual(object: AnyObject?) -> Bool { return super.isEqual(object) }
override func `self`() -> Self { return self } }

关于ios - 从类 'NSObject' 和 'AWSDynamoDBObjectModel' 多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29061760/

相关文章:

iPhone 和 iPad 应用启动图像

swift - SwiftUI 中文本内的居中对齐文本

ios - 如何在 Swift 中调用 Objective C View Controller

spring - 写入 Dynamodb 表工作正常,但读取会引发 DynamoDBMappingException

iOS:删除 For 循环中 NSMutableArray 中的 NSArray

iphone - 为 iOS 设计线程评论系统

iOS 开发 - 没有设备的配置文件

xcode - 变量已写入但从未在 Swift 2.0 和 Xcode 7 中使用

c# - DynamoDB : How to query using GSI when you know the partition key but not the sort key?

c# - 无法在 Unity 中查询或扫描 DynamoDB