Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSLog因某些NSURL而崩溃-iOS 9.2_Ios_Iphone_Swift_Nsurl_Nslog - Fatal编程技术网

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是罪魁祸首;)