ios - iOS AppDelegate.m:处理 openUrl RCTLinkingManager 和 Twitter - 方法 'application:openURL:options:' 的重复声明
问题描述
我需要添加DeepLinking
到我的React Native
应用程序中,并且如文档中所述,我需要添加上面的方法@and
。
// Add this above `@end`:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}
我已经添加了这种方法,但我也有类似的用于 Twitter 登录的方法。这是我的AppDelegate.m
:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
return [[Twitter sharedInstance] application:app openURL:url options:options];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}
@end
我收到一个错误:
Duplicate declaration of method 'application:openURL:options:'
如何解决?我不是 iOS 开发人员,所以很难弄清楚,但我认为这两种方法应该以某种方式结合起来。
解决方案
正如错误所暗示的,您不能拥有具有相同签名的多个函数。这里的一个简单解决方案是将您的实现合并为一个,如下所示:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
return ([[Twitter sharedInstance] application:app openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]);
}
推荐阅读
- powershell - 如何在 Powershell 中读取桌面通知
- c++ - 如何从 C++ 中的集合中删除一个项目而不删除它?
- typescript - 短路变量赋值 已知至少定义了一个变量
- java - Java 加密比较:SunJCE 是否使用本机代码?
- c++ - 如何更改 WebBrowser 全屏视频模式?
- aws-iot - AWS IoT Greengrass 与 FreeRTOS
- r - 如何在R中选择性地定位y轴上的重叠点
- django - 运行 PyCharm 测试时如何解决“django.core.exceptions.ImproperlyConfigured:找不到 GDAL 库”?
- ios - iOS AlertController 背景的默认不透明度是多少?
- c - 可能的叉子组合数