Hi guys, I'm new to swift! I would like to add a link to a text inside my View Controller, I found this code below.
When I run the App crash and is returning this error message:
"NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds"
I appreciate any help, thanks.
class ViewController: UIViewController, UITextViewDelegate { @IBOutlet var textView: UITextView!
override func viewDidLoad() { super.viewDidLoad() let attributedString = NSMutableAttributedString(string: "Link") attributedString.addAttribute(.link, value: "https://www.apple.com", range: NSRange(location: 19, length: 55)) textView.attributedText = attributedString } func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { UIApplication.shared.open(URL) return false }
}
Your attributedString is "Link"
You are referencing location 19, length 55 of attributedString...
...isn't that way beyond the end of attributedString?
I suggest you check the documentation for addAttribute(_:value:range:)
Apple say:
Raises... rangeException if any part of aRange lies beyond the end of the receiver’s characters.