Convert String to URL (Why is resulting variable nil)

You’ve found a bug in the debugger!

[This bug is slated to be fixed in Xcode 12.5.]

It’s easy to reproduce it:

enter image description here

We have paused at a breakpoint inside the condition. So obviously url is not nil or we wouldn’t be here at all.

Another way to prove this is to po url in the console (see right-bottom of this screen shot):

enter image description here

Nevertheless, url shows as nil both in the tooltip and in the variables list. So the debugger is just lying to you: url is not nil. Don’t worry, be happy. Your code is working fine.

EDIT The bug has something to do with the Swift Foundation overlay. If you change the declaration of url to this:

let url = NSURL(string: urlAsString)

…then everything works as expected.

And see also https://stackoverflow.com/a/58156592/341994

Leave a Comment