swift - 在新的 swift 2.0 中获取 NSData 语句错误

标签 swift

我在做一个项目,我想通过 JSON 和 PHP 将用户数据传递到在线数据库。当我在 swift 的 XCode 6(旧版本)中工作时,这段代码没有产生任何错误,但是现在它产生了错误

'(NSData!, NSURLResponse!, NSError!) -> Void' is not convertible to '(NSData?, NSURLResponse?, NSError?) -> Void'

我想这是 swift 中新的可选和强制类型运算符的语法错误。

这是我的代码:

@IBAction func webserviceregistration() {
    var timeFormatter = NSDateFormatter()
    timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
    var strDate = timeFormatter.stringFromDate(dateOfBirth.date)
    var webServiceData: String = "username=\(userNameTextField.text)&password=\(passwordTextField.text)&name=\(nameTextField.text)&dob=\(strDate)"
    var concat: String = self.webservicelogin + webServiceData
    let url = NSURL(string: "www.samplepage.com")
    let session = NSURLSession.sharedSession()
    let dataTask = session.dataTaskWithURL(url!, completionHandler: { (data: NSData!, response:NSURLResponse!, error: NSError!) -> Void in
        //do something
        println("hi")
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
    })
}

最佳答案

我相信这是 Swift 2 中引入的更改。您是否尝试过将 let 语句更改为:

let dataTask = session.dataTaskWithURL(url!, completionHandler: { (data: NSData?, response:NSURLResponse?, error: NSError?) -> Void in

我在类似的 block 中遇到了一些类似的问题,在紧要关头,如果您删除完成处理程序并重新开始,自动完成应该会为您指明正确的方向。

关于swift - 在新的 swift 2.0 中获取 NSData 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674972/

相关文章:

ios - 归档 IOS 应用程序时出现代码设计错误

ios - 链接器命令失败,退出代码为 1(使用 -v 查看调用)xcode firebase

ios - 禁用与 segue 的文本字段交互

ios - UINavigationController 底部工具栏在 hideBarsOnTap 后不保留其状态

ios - 自定义单元格中按钮的索引

ios - 嵌套参数化闭包参数异常

ios - UIPickerView(单元格大小)

swift - 失败的 NSManagedObject 仍在保存

iOS 13 黑暗模式 : traitCollectionDidChange only called the first time

ios - Xcode 7、iOS 9 和 Swift 2.0 让 ViewController 的生命周期变得很奇怪