Vizllx
Vizllx

Reputation: 9246

NSLog crashes with certain NSURL- iOS 9.2

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

Upvotes: 3

Views: 1179

Answers (2)

Martin R
Martin R

Reputation: 539685

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.

Upvotes: 13

TechBee
TechBee

Reputation: 1941

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.

Upvotes: 3

Related Questions