【问题标题】:Swift 2 String & NSURL ErrorsSwift 2 字符串和 NSURL 错误
【发布时间】: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*

【问题讨论】:

    标签: xcode swift swift2


    【解决方案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 {
    
    }
    

    编辑:改用NSURLSessionNSURLConnection.sendSynchronousRequest 已弃用

    【讨论】:

    • 第二个错误几乎可以肯定是因为变量没有解包。我认为问题在于编译器在进行类型推断时遇到了麻烦。
    • NSURLConnection 在 IOS9 之后被弃用。考虑转移到 NSURLSession。
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多