#swift #react-native #react-native-native-module
#swift #react-native #реагировать-родной-родной-модуль
Вопрос:
Я пытаюсь создать собственный модуль React Native в Swift, который необходимо запускать в основном потоке и который отправляет события в JS. Это работает нормально (как указано в документах RN):
@objc(MyModule)
class MyModule: NSObject {
@objc
func methodQueue() -> DispatchQueue {
return DispatchQueue.main
}
}
Рекомендуемый способ отправки событий — расширить RCTEventEmitter
. Когда я меняю NSObject
значение RCTEventEmitter
в приведенном выше коде, я получаю сообщение об ошибке:
Method 'methodQueue()' with Objective-C selector 'methodQueue' conflicts with getter for 'methodQueue' from superclass 'RCTEventEmitter' with the same Objective-C selector
Как я могу переопределить средство methodQueue
получения при одновременном расширении RCTEventEmitter
? Или есть какой-то другой способ отправки событий в JS?
Ответ №1:
Вам нужно переопределить его как средство получения var:
@objc
override var methodQueue: DispatchQueue {
get {
return DispatchQueue.main
}
}