2014-09-30 38 views
2

我是新来的swift(长期PHP和C#程序员),但我真的不能看到任何文档或与我遇到的这个问题具体相关的问题。Swift URL Encoding返回可选(“String”)

因此,低谷就是这样,我想发送一个HTTP GET API到使用NSURLSession的远程服务器在swift中,但是当我编码可编辑的UITextView时,我收到了包含在文本字符串中的UITextView的内容“可选(“”)“,这会导致我的应用程序由于解析不当的URL而崩溃。

这是代码;

var message = messageField.text 
    var encodedMessage = message.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet()) 
    println(encodedMessage) 

messageField.text =“Your message here。”的值。然而,当我查看我看到的println输出时,

可选(“您%20message%20here。”)

我能做些什么来防止这种情况,或者说,我能做些什么,才能使用这个方法,或编码的UITextView的另一种方法?

回答

6

stringByAddingPercentEncodingWithAllowedCharacters返回String?。使用可选配售:

var message = messageField.text 
var encodedMessage = message.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet()) 

if let encodedMessage = encodedMessage { 
    println(encodedMessage) 
} 
+0

对不起;我假设了错误的可选项。 Kirsteins找到了正确的。 – 2014-09-30 13:46:52

+0

请注意,这里不需要'var'。这些值不会改变,所以'let'是首选。 – 2014-09-30 13:47:40

+0

所有的工作,谢谢Kristeins! – koharuai 2014-09-30 13:53:33