У меня есть эти две функции:Свифт Swift 2
func handleReceivedDataWithNotification(notification:NSNotification){
let userInfo = notification.userInfo! as Dictionary
let receivedData:NSData = userInfo["data"] as! NSData
let message = NSJSONSerialization.JSONObjectWithData(receivedData, options: NSJSONReadingOptions.AllowFragments, error: nil) as NSDictionary
let senderPeerId:MCPeerID = userInfo["peerID"] as! MCPeerID
let senderDisplayName = senderPeerId.displayName
if message.objectForKey("string")?.isEqualToString("New Game") == true{
let alert = UIAlertController(title: "TicTacToe", message: "\(senderDisplayName) has started a new Game", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
resetField()
}else{
var field:Int? = message.objectForKey("field")?.integerValue
var player:String? = message.objectForKey("player") as? String
if field != nil && player != nil{
fields[field!].player = player
fields[field!].setPlayer_1(player!)
if player == "x"{
currentPlayer = "o"
}else{
currentPlayer = "x"
}
checkResults()
}
}
}
func fieldTapped (recognizer:UITapGestureRecognizer){
let tappedField = recognizer.view as! TTTImageView
tappedField.setPlayer_1(currentPlayer)
let messageDict = ["field":tappedField.tag, "player":currentPlayer]
let messageData = NSJSONSerialization.dataWithJSONObject(messageDict, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
var error:NSError?
appDelegate.mpcHandler.session.sendData(messageData, toPeers: appDelegate.mpcHandler.session.connectedPeers, withMode: MCSessionSendDataMode.Reliable, error: &error)
if error != nil{
print("error: \(error?.localizedDescription)")
}
checkResults()
}
Если я пытаюсь запустить их в Swift 2, потому что я теперь модернизирован я получаю эти ошибки:
Extra argument 'error' in call.
я получаю эту ошибку по следующим адресам:
let message = NSJSONSerialization.JSONObjectWithData(receivedData, options: NSJSONReadingOptions.AllowFragments, error: nil) as NSDictionary
let messageData = NSJSONSerialization.dataWithJSONObject(messageDict, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
Что нужно сделать, чтобы исправить это?
Я попытался добавить попытку и поймать и сделать, но тогда остальная часть программы ломается, потому что переменные не инициализируются.
Спасибо за любую помощь, которую вы можете предоставить.
«вызов может быть пропущен, но не помечен с помощью try» –
Да, некоторые вызовы теперь используют блоки try-catch вместо ошибок args. Я отредактировал свой вопрос, чтобы вы могли легко видеть, что ожидается. – Aeradriel