这是我更新到后遇到的一个有趣的问题 Swift 2.0
Swift 2.0
错误就在if let url = URL.absoluteString网上
if let url = URL.absoluteString
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 }
编译器告诉您不能使用,if let因为它完全没有必要。您没有要打开的任何可选选项:URL不是可选的,并且该absoluteString属性也不是可选的。if let仅用于解开可选项。如果要创建一个名为的新常量url,请执行以下操作:
if let
URL
absoluteString
url
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 }
但是,旁注:具有一个名为参数的参数URL和一个名为局部常量的参数url会造成极大的混淆。这样可能会更好:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { if #available(iOS 8.0, *) { VPMainViewController.showCompanyMessageWebView(URL.absoluteString) } return false }