gpt4 book ai didi

ios - RCTBridge 始终为零

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:22:01 25 4
gpt4 key购买 nike

一年多以来,我一直在将 React Native 用于移动应用程序项目。我有一个本地组件,用于将 BLE 堆栈桥接到应用程序的 React Native 部分。最近我升级到 XCode 的 9.1 版本,我无法让 React-Native Bridge 在 iOS 版本中工作。 RCTBridge 始终为 nil,因此我永远无法使用 eventDispatcher()。这是我的设置:

我有一个 native Swift 组件,我通过 bridgin header 将其集成到应用程序中。组织看起来像这样:

BLEScanner.swift (This is the native component)
BluetoothModuleBridge.m
Module-Practive-Bridging-Header.h (The bridging header)

每个文件的相关代码片段:

BLEScanner.swift

import Foundation

@objc(BLEScanner)
class BLEScanner: NSObject {

//....

var bridge: RCTBridge! // THIS IS ALWAYS NIL

//....

@objc func requestBluetoothState() -> Void {
print("REQUEST BLE STATE")
let ret = [
"enabled" : true
]

//THIS LINE WILL FAIL BECAUSE bridge IS NIL
self.bridge.eventDispatcher().sendDeviceEvent(withName: "BluetoothStateEvent", body: ret)
}

}

BluetoothModuleBridge.m

#import <React/RCTBridgeModule.h>


@interface RCT_EXTERN_MODULE(BLEScanner, NSObject)

RCT_EXTERN_METHOD(requestBluetoothState)

@end

Module-Practive-Bridging-Header.h

// BluetoothModule-Bridging-Header.h
#import <React/RCTBridge.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventDispatcher.h>

#import <React/RCTRootView.h>
#import <React/RCTUtils.h>
#import <React/RCTConvert.h>

#import "AppDelegate.h"
#import "BugsnagReactNative/BugsnagReactNative.h"

#import "nokeLockSDK.h"
#import "nokeServerSDK.h"
#import "TI_aes_128.h"

我尝试过的

  • 将 React Native 从 0.36 更新到 0.50.3
  • 尝试在多种设备上运行
  • 尝试过旧版本的 XCode
  • 尝试在不同的机器上编译
  • 与运行和使用相同设计的类似应用相比。

我很困惑为什么 RCTBridge 返回 nil。对我来说,XCode 更新会导致这种情况似乎很奇怪,但是,这是唯一的更改。

谁能指出我调试此问题的正确方向?

我正在使用 XCode 9.1 和 React Native 0.50.3

最佳答案

您不必继承 RCTEventEmitter。只需添加 @objc 属性。所以变量应该是 @objc var bridge: RCTBridge!

关于ios - RCTBridge 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47291912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com