将 React Native 根 UIViewController 作为委托传递时如何访问协议方法

问题描述

我正在开发一个 iOS 桥接器,以将 .framework SDK 集成到 React Native 应用程序中。

此 SDK 的文档指出,我应该将 UIViewController 作为委托传递给 SDK 将通知其所有输出的框架初始化程序。

由于 React Native 应用程序是在单个 UIViewController 中构建的,因此我已将该根 UIViewController 传递给初始化程序,如下所示:

UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
if (![CustomSDK isstarted]) {
    [CustomSDK startWithDelegate:rootViewController];
}

按照 React Native 文档中的 iOS 桥接示例,我创建了一个单独的模块来处理这个问题,我已经实现了协议方法

// CustomSDKModule.h

@interface CustomSDKModule : RCTEventEmitter <RCTBridgeModule,CustomSDKProtocol>
@end

使用这个根控制器会抛出一些关于不兼容类型的 UIViewControllers 的警告,但应用程序构建和 SDK 按预期启动。

SDK 尝试触发协议方法时出现问题。我在 CustomSDKModule.m 文件中实现了协议方法,该文件具有初始化 SDK 的方法,但它们从未被 SDK 触发。相反,应用程序崩溃并显示以下消息:

Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '-[UIViewController CustomSDKMethodName:withCaptureType:]: unrecognized selector sent to instance 0x15dd2e8b0'

我想知道是否应该在应用程序的根 UIViewController 的实现中声明这些方法?例如 AppDelegate.m

感谢任何有关我做错或应该做的提示

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)