我遇到此代码的问题我收到此错误
调用中的“额外参数'错误'
我标记了发现错误的行。
@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 = ""
}
答案 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章节。