manager from example swift swift2 nsurl

from - use alamofire in swift 4



El inicializador para el enlace condicional debe tener un tipo opcional, no ''String'' (2)

El compilador le está diciendo que no puede usar un if let porque es totalmente innecesario. No tiene opciones para desempaquetar: la URL no es opcional, y la propiedad absoluteString tampoco es opcional. if let se usa exclusivamente para desenvolver opcionales. Si quieres crear una nueva constante llamada url , hazlo:

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 }

Sin embargo, la nota al margen: tener un parámetro llamado URL y una constante local llamada url es muy confuso. Usted podría estar mejor así:

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { if #available(iOS 8.0, *) { VPMainViewController.showCompanyMessageWebView(URL.absoluteString) } return false }

Este es un tema divertido que estoy encontrando después de actualizar a Swift 2.0

El error está en la línea 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 }


absoluteString no es un valor opcional, es solo una cadena. Puedes comprobar si la variable de URL es nula.

if let url = yourURLVariable { // do your textView function } else { // handle nil url }