我有以下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)
}
}