NSLog因某些NSURL而崩溃-iOS 9.2
以下是发生崩溃的代码:-NSLog因某些NSURL而崩溃-iOS 9.2,ios,iphone,swift,nsurl,nslog,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)") 应用程序因访问不良而崩溃。您应该使用println而不是NSLog l
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)")
应用程序因访问不良而崩溃。您应该使用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()的第一个参数是一个格式字符串,包含 (以
%
开头),由
下面是变量参数列表。在您的例子中,%20C
是一个格式说明符,但是
没有提供匹配的参数。导致未定义的行为,
它可能崩溃或产生不完整或错误的输出
如果要使用NSLog()
,则需要一种通用的安全方法
NSLog("%@", "Loading page with URL: \(URL)")
在这种特殊情况下
NSLog("Loading page with URL: %@", URL)
同样有效,因为NSURL
是一个NSObject
子类,可以使用
使用
%@
格式。如果OP使用的是Swift 2.0,println
已被print
替换,即使在Swift程序中也有充分的理由使用NSLog。例如,当从多个线程调用时,它不会产生垃圾输出,并且会打印一个时间戳,是吗?我还在用println。虽然感谢@Ollie提供的信息,但我仍然在使用println。它工作正常
,因为您使用的是Swift 1,而不是Swift 2。请注意,NSLog
显示在设备日志中,但print
不显示。@MartinR,我的错,我没有太注意。URL对我来说有点被截断了。它正好在%20之前停止。靶心!非常感谢马丁,他不知道%20C是罪魁祸首;)