在UIView
子类中,我重写BecomeFirstResponder
(它返回Bool
。
class MyViewSubclass:UIView {
...
override func becomeFirstResponder() -> Bool {
// some stuff
return super.becomeFirstResponder()
}
...
}
在子类的对象上调用此方法时,出现警告
Result of call to 'becomeFirstResponder()' is Unused
。当我不覆盖
becomeFirstResponder
时,不会发生此消息。我知道在Swift 3中,返回结果的方法的行为已经发生了变化(请参阅SE-0047上的
@discardableResult
),但是我希望重写具有与其 super 方法相同的行为。我是否以为是错误的,或者可能是编译器错误?
编辑:
仅供引用,I filed a bug为此。
最佳答案
我不确定是否是错误。如果您覆盖了一个函数,那么现在完全有可能返回值现在无法被忽略。如果您想要的话,我只会添加@discardableResult
:
@discardableResult override open func becomeFirstResponder() -> Bool {
// some stuff
return super.becomeFirstResponder()
}
关于ios - Swift 3 : Warning "Unused result of call" when overriding BecomeFirstResponder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38638459/