Swift - NSURL error
10,493
The NSURL constructor you're calling has got this signature:
convenience init?(string URLString: String)
? means that the constructor may not return a value, hence it is considered as an optional.
Same goes for the NSData constructor:
init?(contentsOfURL url: NSURL)
A quick fix is:
let myProfilePictureURL = NSURL(string: "http://graph.facebook.com/bobdylan/picture")
let imageData = NSData(contentsOfURL: myProfilePictureURL!)
self.myImage.image = UIImage(data: imageData!)
The best solution is to check (unwrap) those optionals, even if you're sure that they contain a value!
You can find more infos on optionals here: link to official Apple documentation.
Author by
Dan Riaz
Updated on June 04, 2022Comments
-
Dan Riaz almost 2 years
Getting an error when trying to use the
NSURL
class below, the code below is essentially trying to store an image I am pulling in from Facebook into animageView
. The error is as follows:value of optional type 'NSURL?' not unwrapped, did you mean to use '!' or '?'
Not sure why this is is happening, help!
import UIKit class ViewController: UIViewController { @IBOutlet weak var myImage: UIImageView! override func viewDidLoad() { super.viewDidLoad() let myProfilePictureURL = NSURL(string: "http://graph.facebook.com/bobdylan/picture") let imageData = NSData(contentsOfURL: myProfilePictureURL) self.myImage.image = UIImage(data: imageData) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }