I am trying to implement a Swift class that must
- Inherit from an Objective-C class
- Implement a Objective-C protocol with class variable.
Although the Objective-C class I am subclassing is inheriting from NSObject, I receive the following compilation error :
Type DDBItem must conform to protocol 'NSObjectProtocol'
The Objective-C class and Objective-C protocol I am inheriting / implementing are available at https://github.com/aws/aws-sdk-ios/blob/master/DynamoDB/AWSDynamoDBObjectMapper.h
AWSDynamoDBModel has a long chain of inheritance that eventually starts with NSObject AWSDynamoDBModeling is enforcing two class variables.
My code is
class DDBItem : AWSDynamoDBModel, AWSDynamoDBModeling {
// class var dynamoDBTableName : String { get { return "" }}
// class var hashKeyAttribute : String { get { return "" }}
class func dynamoDBTableName() -> String! {
return ""
}
class func hashKeyAttribute() -> String! {
return ""
}
}
Bonus Question : when trying to implement the Objective-C protocol mandated class variables as Swift class variables, I receive a compilation error :
Type DDBItem must conform to protocol 'AWSDynamoDBModeling'
Implementing them as function seems to be accepted. Why ?