如何覆盖 swift 中的 objective-c 方法
how to override objective-c method in swift
我试图在 swift 子类中重写此 objective-c 方法。不过,我一直收到编译器错误:
来自 AWSMTLModel
- (instancetype)initWithDictionary:(NSDictionary *)dictionary error:(NSError **)error
Swift 子类
override func init!(dictionary dictionaryValue: [NSObject : AnyObject]!)//error: overriding declaration requires override keyword (fix it places override after func but gives same error
删除函数。
override init?(withDictionary dict: [NSObject : AnyObject])
另外,我会去掉隐式展开的可选值。如果 init 可能会失败,请将其设为可选。如果字典参数是可选的,则创建另一个不带参数的便利 init,但它会创建一个默认字典并调用此 init。
我试图在 swift 子类中重写此 objective-c 方法。不过,我一直收到编译器错误:
来自 AWSMTLModel
- (instancetype)initWithDictionary:(NSDictionary *)dictionary error:(NSError **)error
Swift 子类
override func init!(dictionary dictionaryValue: [NSObject : AnyObject]!)//error: overriding declaration requires override keyword (fix it places override after func but gives same error
删除函数。
override init?(withDictionary dict: [NSObject : AnyObject])
另外,我会去掉隐式展开的可选值。如果 init 可能会失败,请将其设为可选。如果字典参数是可选的,则创建另一个不带参数的便利 init,但它会创建一个默认字典并调用此 init。