Initializer for conditional binding must have Optional type, not 'String'
The compiler is telling you that you can't use an if let
because it's totally unnecessary. You don't have any optionals to unwrap: URL
is not optional, and the absoluteString
property isn't optional either. if let
is used exclusively to unwrap optionals. If you want to create a new constant named url
, just do it:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
let url = URL.absoluteString
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(url)
}
return false
}
However, sidenote: having a parameter named URL
and a local constant named url
is mighty confusing. You might be better off like this:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(URL.absoluteString)
}
return false
}