Swift URL 编码返回 Optional("String")
Posted
技术标签:
【中文标题】Swift URL 编码返回 Optional("String")【英文标题】:Swift URL Encoding returns Optional("String") 【发布时间】:2014-09-30 13:38:49 【问题描述】:我是 swift 新手(长期 php 和 C# 程序员),但我真的看不到任何与我遇到的这个问题相关的文档或问题。
所以,最重要的是,我想快速使用 NSURLSession 将 HTTP GET API 发送到远程服务器,但是当我对可编辑的 UITextView 进行编码时,我收到了包含在文字字符串“Optional( "")" 导致我的应用程序由于解析不良的 URL 而崩溃。
这是代码;
var message = messageField.text
var encodedMessage = message.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
println(encodedMessage)
messageField.text 的值 = "您的留言。"但是,当我查看我的 println 输出时,我看到了;
可选的(“您的%20message%20here。”)
我可以做些什么来防止这种情况发生,或者更确切地说,我可以做些什么来利用这种方法,或者其他编码 UITextView 的方法?
【问题讨论】:
【参考方案1】:stringByAddingPercentEncodingWithAllowedCharacters
返回String?
。使用可选出价:
var message = messageField.text
var encodedMessage = message.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
if let encodedMessage = encodedMessage
println(encodedMessage)
【讨论】:
对不起;我假设错误的可选。 Kirsteins 找到了合适的。 请注意这里不需要var
。这些值不会改变,因此首选let
。
每当您遇到此类问题时,只需 alt+单击变量名称和方法即可。您将看到推断出的类型以及方法返回的类型。以上是关于Swift URL 编码返回 Optional("String")的主要内容,如果未能解决你的问题,请参考以下文章
URL编码参数中的布尔值在Swift3中使用Alamofire编码为0和1
关于optional的orElse和orElseGet、orElseThrow
UITextField - 无法打开 Optional.None
编码url swift withAllowedCharacters不工作 编码%20为%2520 (意味着编码%为%25)