Swift URL Encoding връща опция (низ)

Нов съм в swift (отдавнашен PHP и C# програмист), но всъщност не мога да видя никаква документация или въпроси, свързани конкретно с този проблем, който имам.

И така, долната част е следната, искам да изпратя HTTP GET API към отдалечен сървър, използвайки NSURLSession в swift, но когато кодирам редактируемия UITextView, получавам съдържанието на този UITextView, обвито в буквалния низ "Optional("") “, което кара приложението ми да се срива поради лошо анализиран URL адрес.

Ето кода;

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

Стойността на messageField.text = "Вашето съобщение тук." обаче, когато преглеждам моя println изход, виждам;

По избор („Вашето%20съобщение%20тук.“)

Какво мога да направя, за да предотвратя това или по-скоро какво мога да направя, за да използвам този метод или друг метод за кодиране на UITextView?


person koharuai    schedule 30.09.2014    source източник


Отговори (1)


stringByAddingPercentEncodingWithAllowedCharacters връща String?. Използвайте наддаване по избор:

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

if let encodedMessage = encodedMessage {
    println(encodedMessage)
}
person Kirsteins    schedule 30.09.2014
comment
Съжалявам; Предположих грешната опция. Kirsteins намери правилния. - person Rob Napier; 30.09.2014
comment
Обърнете внимание, че тук няма нужда от var. Тези стойности не се променят, така че let е за предпочитане. - person Rob Napier; 30.09.2014
comment
Всеки път, когато се сблъскате с такъв проблем, просто alt+щракнете върху имената на променливите и методите. Ще видите какви типове са изведени и какви типове методите връщат. - person Kirsteins; 30.09.2014