在 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为此。
最佳答案
不知道是不是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/