NSLog 与某些 NSURL 崩溃 - iOS 9.2

NSLog crashes with certain NSURL- iOS 9.2

这是我的代码,发生崩溃的地方:-

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)")

应用程序崩溃 EXC_BAD_ACCESS

你应该使用 println 而不是 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)")

我添加了选项标志!最后展开。

NSLog() 的第一个参数是 格式字符串 ,包含 format specifiers(以 % 开头)由 以下变量参数列表。在您的情况下 %20C 是格式说明符,但是 没有提供匹配的参数。这会导致未定义的行为, 它可能会崩溃或产生不完整或错误的输出。

如果你想使用NSLog()那么一个通用的安全方法是

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

在这种情况下,

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

也适用,因为 NSURLNSObject 的子类,可以使用 使用 %@ 格式。