objective-c - 方法在框架中折旧,但无法应用建议的更改
问题描述
我正在使用内部编写的框架,当我尝试减少警告数量时,我会不断出现一个警告,即“实施折旧方法”。有问题的方法是 openURL
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
当我转到框架代码时,我可以看到它的折旧位置和建议的更改
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
建议是使用 openURL:options。查看 openURL 的文档,它说我应该像下面这样使用
UIApplication *application = [UIApplication sharedApplication];
[application openURL:URL options:@{} completionHandler:nil];
但是,这不起作用,当我的方法看起来像这样时,我无法将参数 openURL 从方法中分离出来
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
..
}
如上所述,如何将新的建议更改实施到我现有的方法调用中?
解决方案
您需要实现的方法是application:openURL:options:
不推荐使用的方法application:openURL:sourceApplication:annotation:
。所以用下面的方法替换你的方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
//Your code ..
}
注意:-openURL:options:completionHandler:
您尝试使用的实例方法用于异步打开指定 URL 处的资源。
推荐阅读
- javascript - #JavaScript:在小写输入后在函数中切换输入
- python - Python:字符串用 A 或 B 分割
- apache-spark - 并行提交多个作业时 spark-submit 失败
- redux - 使用 React / Redux 在特定情况下检索过滤后的数组长度
- reactjs - 多个导航栏 REACTJS
- python - 使用 Haarcascade 检测到的人脸,如何在不同颜色的相同人脸上绘制边界框
- python - 在 C++ 中估计嵌入式 python 脚本的进度
- javascript - 图像不在画布内旋转
- sql - 如何在分区级别查看分区表的 I/O 统计信息
- javascript - 我试图在单击按钮时禁用/启用下拉菜单