NSLog与某些NSURL-iOS 9.2崩溃

时间:2016-02-11 09:53:32

标签: ios iphone swift nsurl 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")
NSLog("Loading page with URL: \(URL)")

该应用与EXC_BAD_ACCESS

崩溃

2 个答案:

答案 0 :(得分:13)

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

如果您想使用NSLog(),则可以使用常规安全方法

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

在这种特殊情况下,

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

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

答案 1 :(得分:3)

您应该使用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)")

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