Here is a fun issue I'm running into after updating to Swift 2.0
The error is on the if let url = URL.absoluteString
line
func myFormatCompanyMessageText(attributedString: NSMutableAttributedString) -> NSMutableAttributedString { // Define text font attributedString.addAttribute(NSFontAttributeName, value: UIFont(name: "Montserrat-Light", size: 17)!, range: NSMakeRange(0, attributedString.length)) return attributedString } func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { if let url = URL.absoluteString { if #available(iOS 8.0, *) { VPMainViewController.showCompanyMessageWebView(url) } } return false }
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 }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With