gpt4 book ai didi

ios - 在 React Native bridge 上调用方法时 Bridge 为 nil,使用单例?

转载 作者:搜寻专家 更新时间:2023-10-30 20:15:18 28 4
gpt4 key购买 nike

我正在努力创建自己的自定义组件,以便与蓝牙设备进行交互。 I tried this in Swift , 但由于访问桥的问题而没有到达任何地方。

我在 Objective-C 中重新实现它并遇到了同样的问题 (bridge = nil)。为了修复它,我使用了:

BTAdapter.h

#import "RCTBridgeModule.h"

@interface BTAdapter : NSObject<RCTBridgeModule>
- (void)sendEvent:(NSString *)name;
@end

BTAdapter.m

#import "BTAdapter.h"

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"

@implementation BTAdapter

RCT_EXPORT_MODULE()

@synthesize bridge = _bridge;

+ (id)allocWithZone:(NSZone *) zone
{
static BTAdapter *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [super allocWithZone:zone];
});
return sharedInstance;
}


- (void)sendEvent:(NSString *)name
{
NSLog(@"Received generic event in the bridge");
if (self.bridge == nil) {
NSLog(@"Bridge is nil"); // This happens normally
} else {
NSLog(@"Bridge is NOT nil"); // This happens with a singleton
}
[self.bridge.eventDispatcher sendAppEventWithName:name body:@"Event from the bridge"];
}

添加到我的Bridging-Header.h:

#import "BTAdapter.h"

我在 Swift 中这样调用它:

let adapter: BTAdapter = BTAdapter()
adapter.sendEvent("TestEvent")

这是一件坏事吗?我关注了一个关于类似主题的相当过时的 React Native GitHub 问题,但围绕这个解决方案并没有太多的确定性。 This seems to suggest it's not a good idea at all.

这里有什么问题吗?

最佳答案

在删除自己的初始化程序代码之前,我遇到了这个问题。如果您需要配置,我建议您使用RCT_EXPORT_METHOD 调用并准备您的模块。

关于ios - 在 React Native bridge 上调用方法时 Bridge 为 nil,使用单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009495/

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