Swift URL-кодирование возвращает необязательный (строка)

Я новичок в Swift (давний программист PHP и С#), но я не вижу никакой документации или вопросов, касающихся конкретно этой проблемы, с которой я сталкиваюсь.

Итак, суть в том, что я хочу отправить HTTP GET API на удаленный сервер, используя NSURLSession в быстром режиме, однако, когда я кодирую редактируемый UITextView, я получаю содержимое этого UITextView, заключенного в буквальную строку "Необязательный ("") ", что приводит к сбою моего приложения из-за плохо проанализированного URL-адреса.

Вот код;

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

Значение messageField.text = «Ваше сообщение здесь». однако, когда я просматриваю свой вывод на печать, я вижу;

Необязательный("Ваше%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
Извиняюсь; Я предположил неправильный дополнительный. Кирштейнс нашел правильный. - person Rob Napier; 30.09.2014
comment
Обратите внимание, что здесь нет необходимости в var. Эти значения не изменяются, поэтому предпочтительнее let. - person Rob Napier; 30.09.2014
comment
Всякий раз, когда вы сталкиваетесь с такой проблемой, просто нажмите Alt+клик на имена переменных и методы. Вы увидите, какие типы выводятся и какие типы возвращаются методами. - person Kirsteins; 30.09.2014