如何在Swift中重写Objective-C方法

5

我想在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
1个回答

3
放弃这个函数。
override init?(withDictionary dict: [NSObject : AnyObject])

此外,我会取消隐式解析可选项。如果 init 可能失败,请将其变为可选项。如果字典参数是可选的,则创建另一个便利 init,该 init 不带参数,但创建默认字典并调用此 init。

我同意,?! 更好。 - Luca Angeletti
你知道在Swift书中描述需要删除func的部分在哪里吗? - joels
有一个完整的初始化部分。https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-ID203 - Mr Beardsley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接