虽然给出了一个空间,但是在打开一个可选值时,我意外地找到了空格。

时间:2015-01-16 08:09:46

标签: ios web-services swift nsurl

当我在我的网络服务中传递时,我的NSURL对象中有3个参数。 在打开一个可选值时,我意外地发现了nil'而我正在经过“空间”#39;在我的一个参数中。

以下代码

     println("viewDidLoad contact name \(contactName)")// i am giving Space here like 'James '
    // println(countryCode)
    // println(townCode)



    var resultPage=false
        let url: NSURL? = NSURL(string: "<URL>/searchContactsJSON?searchString=\(contactName)&towCode=\(townCode)&couCode=\(countryCode)") //I am getting error in this line....

如果我没有在参数中给出空间而不是工作正常......

有人可以帮助我解决上述问题吗?

谢谢,

2 个答案:

答案 0 :(得分:4)

文件说:

  

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

     

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

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

答案 1 :(得分:3)

你必须使用.stringByAddingPercentEscapesUsingEncoding

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