Hier ist ein lustiges Thema, auf das ich nach dem Update auf Swift 2.0 stosse
Der Fehler befindet sich in der Zeile 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
}
Der Compiler sagt Ihnen, dass Sie keinen if let
verwenden können, da er völlig unnötig ist. Sie haben keine Optionale zum Entpacken: URL
ist nicht optional und die absoluteString
-Eigenschaft ist ebenfalls nicht optional. if let
wird ausschließlich zum Entpacken von Optionals verwendet. Wenn Sie eine neue Konstante mit dem Namen url
erstellen möchten, tun Sie dies einfach:
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
}
Randbemerkung: Der Parameter URL
und die lokale Konstante url
sind jedoch verwirrend. Es könnte Ihnen besser gehen:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(URL.absoluteString)
}
return false
}
absoluteString
ist kein optionaler Wert, sondern nur ein String. Sie können überprüfen, ob die URL-Variable gleich Null ist
if let url = yourURLVariable {
// do your textView function
} else {
// handle nil url
}