3

Here is my code,where the crash occurs:-

let URL = NSURL(string: "http://files.parsetfss.com/fa80bc63-88d4-412d-a478-2451cffc92a9/tfss-1d2a321d-b02e-4745-a589-e31536f648df-XXXXX%20CAT15%2030.p0001.jpg")
NSLog("Loading page with URL: \(URL)")

The app crashes with EXC_BAD_ACCESS

Vizllx
  • 9,135
  • 1
  • 41
  • 79
  • @MartinR, my bad, I didn't paid too much attention. The URL is kinda truncated for me. It stops exactly before the %20. – mxmlc Feb 11 '16 at 10:25

2 Answers2

13

The first argument of NSLog() is a format string, and contains format specifiers (starting with %) which are expanded by the following variable argument list. In your case %20C is a format specifier, but no matching argument is supplied. That causes undefined behavior, it can crash or produce incomplete or wrong output.

If you want to use NSLog() then a general safe method is

NSLog("%@", "Loading page with URL: \(URL)")

In this particular case,

NSLog("Loading page with URL: %@", URL)

works as well, since NSURL is a NSObject subclass and can be used with the %@ format.

Martin R
  • 529,903
  • 94
  • 1,240
  • 1,382
3

You should use println instead of NSLog.

let URL = NSURL(string: "http://files.parsetfss.com/fa80bc63-88d4-412d-a478-2451cffc92a9/tfss-1d2a321d-b02e-4745-a589-e31536f648df-XXXXX%20CAT15%2030.p0001.jpg")!
println("Loading page with URL: \(URL)")

I have added the option sign ! at the end to unwrap.

TechBee
  • 1,897
  • 4
  • 22
  • 46