一种方法在框架中已贬值,但无法应用建议的更改
A method is depreciated in framework but cannot apply suggested change
我使用的是内部编写的框架,当我尝试减少警告的数量时,有一个不断出现,它是 'Implementing depreciated method'。有问题的方法是 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:
instead of deprecated one application:openURL:sourceApplication:annotation:
。所以用下面的方法替换你的方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
//Your code ..
}
注意:-您尝试使用的实例方法openURL:options:completionHandler:
用于异步打开指定URL处的资源。
我使用的是内部编写的框架,当我尝试减少警告的数量时,有一个不断出现,它是 'Implementing depreciated method'。有问题的方法是 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:
instead of deprecated one application:openURL:sourceApplication:annotation:
。所以用下面的方法替换你的方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
//Your code ..
}
注意:-您尝试使用的实例方法openURL:options:completionHandler:
用于异步打开指定URL处的资源。