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

时间:2017-11-19 01:50:24

标签: objective-c swift interop

我有以下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参数的新方法?

1 个答案:

答案 0 :(得分:0)

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

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