ios - WhatsApp NSURL returning nil When sharing text - Swift -
i'm trying share text whatsapp nsurl returning nil text encoded right ! take @ code :
var msg : nsstring = "to world of none"; var titlewithoutspace = msg.stringbyaddingpercentescapesusingencoding(nsutf8stringencoding) var urlwhats = nsstring(string: "whatsapp://send?text=\(titlewithoutspace)") println(urlwhats) var whatsappurl = nsurl(string: urlwhats string) println(whatsappurl)
when printing result string equal :
whatsapp://send?text=optional("to%20the%20world%20of%20none")
and whatsappurl returning nil :
nil
stringbyaddingpercentescapesusingencoding:
returns optional string
that's why urlwhats
contains optional("")
. avoid need unwrap optional :
var msg: nsstring = "to 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 string) println(whatsappurl) } else { // unwrapping failed because titlewithoutspace nil (might because stringbyaddingpercentescapesusingencoding failed). }
besides suggest use string type directly since nsstring
useless there (except stringbyadding…
) :
var msg: nsstring = "to 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 nil (might because stringbyaddingpercentescapesusingencoding failed). }
also please note nsurl(string:)
may fail returns optional nsurl
object. use might need unwrap did titlewithoutspace
.
Comments
Post a Comment