Swift 2 字符串和 NSURL 错误
Posted
技术标签:
【中文标题】Swift 2 字符串和 NSURL 错误【英文标题】:Swift 2 String & NSURL Errors 【发布时间】:2015-11-11 08:03:19 【问题描述】:更新到 Swift2 后,我收到一些我不明白的错误:
第一个错误:
if(!parole1.text.isEmpty && !parole2.text.isEmpty && !parole3.text.isEmpty && isValidEmail(parole4.text))
... code
--> ERROR: *Value of optional type String? not unwrapped!*
第二个错误:
var dataString = "name="+name.text+"&name2="+Name2.text+"&parola="+parola.text+"&pwd="+pwd.text
--> ERROR: *Expression was too complex to be solved in reasonable time*
第三个错误:
let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)
-->ERROR: *Extra argument 'error' in call*
【问题讨论】:
【参考方案1】:第一个错误:
parole1.text 是可选的,必须用 ?或者 !在你可以调用 isEmpty 之前。
第二个错误:
我不知道为什么这对 swift 来说是个问题,但可以用这样的格式化字符串来解决:
var dataString = "name=\(name.text)&name2=\(Name2.text)&parola=\(parola.text)&pwd=\(pwd.text)"
但是,您可能还想用if let
或硬!
解压此处的文本
第三个错误:
NSURLConnection.sendSynchronousRequest 不再将错误作为参数。
do
let reply = try NSURLConnection.sendSynchronousRequest(request, returningResponse:&response)
catch
编辑:改用NSURLSession
。 NSURLConnection.sendSynchronousRequest
已弃用
【讨论】:
第二个错误几乎可以肯定是因为变量没有解包。我认为问题在于编译器在进行类型推断时遇到了麻烦。 NSURLConnection 在 ios9 之后被弃用。考虑转移到 NSURLSession。以上是关于Swift 2 字符串和 NSURL 错误的主要内容,如果未能解决你的问题,请参考以下文章