Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iOS 9开始,application:openURL:sourceApplication:annotation:已弃用,如何在iOS 8中使用新方法?_Ios_Swift_Cocoa Touch_Ios9_Uiapplicationdelegate - Fatal编程技术网

从iOS 9开始,application:openURL:sourceApplication:annotation:已弃用,如何在iOS 8中使用新方法?

从iOS 9开始,application:openURL:sourceApplication:annotation:已弃用,如何在iOS 8中使用新方法?,ios,swift,cocoa-touch,ios9,uiapplicationdelegate,Ios,Swift,Cocoa Touch,Ios9,Uiapplicationdelegate,我当前的应用程序仍然支持iOS 8,但我想使用新方法,application:openURL:options:,这在iOS 8中不可用 如何在iOS 8设备上支持旧方法,但在iOS 9及更高版本上支持新选项?我不熟悉此特定方法,但您不能进行响应选择器检查吗 if ([self respondsToSelector:@selector(application:openURL:sourceApplication:annotation)]) { // Call the iOS9 Method

我当前的应用程序仍然支持iOS 8,但我想使用新方法,
application:openURL:options:
,这在iOS 8中不可用


如何在iOS 8设备上支持旧方法,但在iOS 9及更高版本上支持新选项?

我不熟悉此特定方法,但您不能进行响应选择器检查吗

if ([self respondsToSelector:@selector(application:openURL:sourceApplication:annotation)])
{
     // Call the iOS9 Method
}
else
{
    // Call the iOS8 Method
}

Swift 2.0通过
#available
块添加了可用性检查

if #available(iOS 9, *) {
    // use new method
} else {
    // use old method
}

有关更多信息,请访问。

我的建议是,您可以在同一正文中使用这两种方法。
当应用程序在iOS 8中运行时,它将调用iOS 8方法,否则它将调用iOS 9方法。

您可以同时实现它们,并让系统调用它想要的任何一个方法。不,这在这里不合适。问题是关于
uiapplicationelegate
中的委托方法。调用问题中的方法的是系统框架,而不是应用程序的代码。@holex我没有意识到我的答案与问题无关,或者我不会发布它,如果你们都知道“基本”方法,为什么不发布答案呢。当然,如果我的答案是错误的,那么关于可用区块的答案也是错误的,但是没有人对这篇文章发表评论。谢谢你们让我觉得自己很渺小和愚蠢。我以后会尽量不帮忙。@asjj,你以后可以帮忙,但请仔细阅读问题,试着理解OP的问题和答案——这不是竞争,如果你不确定,就别管它了,你不需要不惜一切代价给出一些随机的答案。