2014-09-30 80 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