如何在重写methodQueue getter的同时扩展RCTEventEmitter



我正试图在Swift中创建一个React Native本机模块,该模块需要在主线程上运行,并将事件发送到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

如何在扩展RCTEventEmitter的同时覆盖methodQueuegetter?或者有其他方式将事件发送到JS吗?

您需要将其重写为var getter:

@objc
override var methodQueue: DispatchQueue {
get {
return DispatchQueue.main
}
}

相关内容

  • 没有找到相关文章

最新更新