I am trying to implement a Swift class that must
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 ?
Just inherit from NSObject:
class DDBItem : NSObject, AWSDynamoDBModel, AWSDynamoDBModeling {
Self answered for sake of archiving.
When adding
override func isEqual(anObject: AnyObject?) -> Bool { return super.isEqual(anObject) }
to my class, it works. This method should have been inherited from the base class.
Looks like a bug in Swift / Xcode 6.1 to me
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With