UITextViewDelegate函数应该与Xcode 8.0中的URL交互

use*_*126 2 xcode uitextview swift

我创建了一个带有可检测链接的UITextView但是我无法使用UITextView委托函数'shouldinteractwithURL'.

我收到一个警告,实例方法几乎匹配另一个实例方法.我已经查看了委托函数,并且已经为ios 10.0更新了'shouldinteractwithURL'函数但是我想使用与ios 9兼容的函数版本.但是,即使我使用新版本并设置了部署目标到了ios 10,我得到了相同的警告,但仍未调用该函数(我已正确发送了textview委托).

Xcode建议的解决方案是将函数设为私有或添加@nonobjc.这些都不起作用,所以点击链接时没有任何反应.

有没有其他人有这个问题或者这是Xcode 8.0的问题?

OOP*_*Per 8

使用添加@availability属性,这将编译没有错误:

//For iOS 7...9
@available(iOS, deprecated: 10.0)
func textView(_ textView: UITextView, shouldInteractWith url: URL, in characterRange: NSRange) -> Bool {
    var result = false
    //...
    return result
}

//For iOS 10
@available(iOS 10.0, *)
func textView(_ textView: UITextView, shouldInteractWith url: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
    var result = false
    //...
    return result
}
Run Code Online (Sandbox Code Playgroud)