问题描述
我正在开发一个 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 (将#修改为@)