stringByAddingPercentEscapesUsingEncoding:
возвращает дополнительный String
, поэтому urlWhats
содержит Optional("")
. Чтобы избежать этого вам просто нужно разворачивать опциональный так:
var msg: NSString = "to the world of none";
var titlewithoutspace = msg.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
if let titlewithoutspace = titlewithoutspace {
var urlWhats = NSString(string: "whatsapp://send?text=\(titlewithoutspace)")
var whatsappURL = NSURL(string: urlWhats as String)
println(whatsappURL)
} else {
// Unwrapping failed because titlewithoutspace is nil (might be because stringByAddingPercentEscapesUsingEncoding failed).
}
Кроме того, я предлагаю вам использовать тип String, непосредственно так NSString
бесполезно для вас там (за stringByAdding…
исключением):
var msg: NSString = "to the world of none";
var titlewithoutspace = msg.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
if let titlewithoutspace = titlewithoutspace {
var urlWhats = "whatsapp://send?text=\(titlewithoutspace)"
var whatsappURL = NSURL(string: urlWhats)
println(whatsappURL)
} else {
// Unwrapping failed because titlewithoutspace is nil (might be because stringByAddingPercentEscapesUsingEncoding failed).
}
Также обратите внимание, что NSURL(string:)
может не работать, поэтому он также возвращает дополнительный объект NSURL
. Чтобы использовать его, вам может понадобиться развернуть его, как и я, для titlewithoutspace
.
в течение 5 минут мне было интересно, откуда «Необязательный» входит в вашу выходную строку? –
Да, я тоже об этом думал! :) – AaoIi
проверить Sulthan ответ .. это поможет вам ... –