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/

10-09 07:32