Установка свойства класса Object-C из Swift

У меня есть класс MyClass подкласса из NSObject . Он написан в Objective-C. Он имеет свойство с пользовательским getter и setter:

  @interface MyClass : NSObject @property (getter = getIsBypassEnabled, setter = setIsBypassEnabled:) BOOL isBypassEnabled; @end 

И обе эти функции определены в реализации:

  @implementation MyClass // Initializer and other stuff // ... - (void) setIsBypassEnabled: (BOOL) newValue { _value = newValue; } - (BOOL) getIsBypassEnabled { return _value; } @end 

Но когда я пытаюсь установить свойство из Swift, например:

 let objcClass = MyClass() objcClass.isBypassEnabled = true 

Я получаю сообщение об ошибке 'isBypassEnabled' has been renamed to 'getIsBypassEnabled' . Но мне нужно установить значение, а не получить его!

Попытка

 objcClass.setIsBypassEnabled(true) 

дает мне ошибку, что мой класс не имеет такого члена.

декларирование

 - (BOOL) getIsBypassEnabled; - (void) setIsBypassEnabled: (BOOL) newValue; 

явно в .h файле тоже не помогает.

Как решить проблему? Спасибо.

     @interface MyClass : NSObject @property (getter = getIsBypassEnabled, setter = setIsBypassEnabled:) BOOL isBypassEnabled; @end 

    сопоставляется с Swift как

     open class MyClass : NSObject { open var getIsBypassEnabled: Bool } 

    поэтому вы можете установить свойство на самом деле с помощью

     let objcClass = MyClass() objcClass.getIsBypassEnabled = true 

    Я не знаю, предназначено ли это сопоставление или нет, возможно, вы захотите записать отчет об ошибке.

    Вы также можете переопределить отображение Swift с помощью

     @interface MyClass : NSObject @property (getter = getIsBypassEnabled, setter = setIsBypassEnabled:) BOOL isBypassEnabled NS_SWIFT_NAME(isBypassEnabled); @end 

    а потом

     let objcClass = MyClass() objcClass.isBypassEnabled = true 

    работает по назначению.