Objective-C 选择器参数的快速默认值



我有以下Objective-C方法:

-(void)setPaneState:(MHPaneState)state withInitialVelocity:(CGPoint)velocity{
    self.paneState = state;
    [self animatePaneWithInitialVelocity:velocity];
}

目前,在同一应用程序的 Swift 代码中,我像这样调用此方法:

setPaneState(.closed, withInitialVelocity: .zero)

我希望第二个参数(velocity(的默认值为CGPointZero。我知道 Objective-C 在语言级别不支持默认值,但 Swift 支持,所以我想在 Swift 中调用此方法,如下所示:

setPaneState(.closed)

我怎样才能完成定义一个只接受一个MHPaneState参数的新方法?

你能在你的 Objective-C 类型上写一个 Swift 扩展并给它一个不同的名字吗?

extension MyObjCThing {
    func mySetPaneState(_ state: MHPaneState, withInitialVelocity velocity: CGPoint = .zero) {
        setPaneState(state, withInitialVelocity: velocity)
    }
}

最新更新