调用错误中的Swift2额外参数

时间:2016-03-27 09:00:28

标签: swift swift2

我遇到此代码的问题我收到此错误

  

调用中的“额外参数'错误'

我标记了发现错误的行。

@IBAction func sendChat(sender: UIButton) {
// Bundle up the text in the message field, and send it off to all
// connected peers

    let msg = self.messageField.text!.dataUsingEncoding(NSUTF8StringEncoding,
                                                       allowLossyConversion: false)

    var error : NSError?



    self.session.sendData(msg!, toPeers: self.session.connectedPeers,
        withMode: MCSessionSendDataMode.Unreliable, error: &error)


    if error != nil {
        print("Error sending data: \(error?.localizedDescription)")
    }

    self.updateChat(self.messageField.text!, fromPeer: self.peerID)

    self.messageField.text = ""
}

1 个答案:

答案 0 :(得分:3)

在Swift 2之前,我们习惯使用如下语法:

var error: NSError?
session.sendData(msg!, toPeers: session.connectedPeers, withMode:.Unreliable, error: &error)
if error != nil {
    print("Error sending data: \(error?.localizedDescription)")
}

Swift 2错误处理范例使用do - try - catch(注意,没有error参数,因为错误现在被“抛出”,并且在catch区块内处理:

do {
    try session.sendData(msg!, toPeers: session.connectedPeers, withMode: .Unreliable)
} catch let error as NSError {
    print("Error sending data: \(error.localizedDescription)")
}

您使用较新版本的Xcode使用旧语法,因此编译器会警告您不再需要此error参数。

请参阅 Swift编程语言的Error Handling章节。