Ios 在给予空间的同时,我得到了';在展开可选值';

Ios 在给予空间的同时,我得到了';在展开可选值';,ios,web-services,swift,nsurl,Ios,Web Services,Swift,Nsurl,当我在Web服务中传递时,我的NSURL对象中有3个参数。 当我在一个参数中传递“空格”时,我得到了“在展开可选值时意外发现为零” 代码如下 println(“viewdiload contact name\(contact name)”//我在这里像“James”一样给空格 //println(国家代码) //println(城市代码) var resultPage=false 让url:NSURL?=NSURL(字符串:“/searchContactsJSON?searchString=\(

当我在Web服务中传递时,我的NSURL对象中有3个参数。 当我在一个参数中传递“空格”时,我得到了“在展开可选值时意外发现为零”

代码如下
println(“viewdiload contact name\(contact name)”//我在这里像“James”一样给空格
//println(国家代码)
//println(城市代码)
var resultPage=false
让url:NSURL?=NSURL(字符串:“/searchContactsJSON?searchString=\(contactName)&towCode=\(townCode)&couCode=\(countryCode)”//我在这一行中遇到错误。。。。
如果我没有给一个空间的参数比它的工作良好

有人能帮我解决上述问题吗

谢谢,

医生说:

返回值:用URLString初始化的NSURL对象。如果URL字符串格式不正确,则返回nil。 讨论

此方法要求URL字符串仅包含格式正确的URL中允许的字符。所有其他字符必须正确转义。任何百分比转义字符都使用UTF-8编码进行解释


因此,如果您将空格传递给NSURL,它将生成nil,因为它是一个格式错误的字符串。

您必须使用.stringByAddingPercentEscapesUsingEncoding

"http://www.domain.com/?z=your string".stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!  // "http://www.domain.com/?z=your%20string"
"http://www.domain.com/?z=your string".stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!  // "http://www.domain.com/?z=your%20string"