Лишний аргумент Свифт?

Дополнительный аргумент «ошибка» в вызове

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) // This the error line
        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!].Player(player!)

                if player == "x"{
                    currentPlayer = "o"
                }else{
                    currentPlayer = "x"
                }

                checkResults()

            }

        }


    }

person Jeylani Osman    schedule 28.05.2016    source источник
comment
Людям, голосующим за закрытие вопроса, нет, понятно, о чем спрашивают.   -  person TofuBeer    schedule 28.05.2016
comment
Swift перешел на использование throws вместо ошибок входа-выхода. См. developer.apple.com/library/ios/documentation. /Swift/Концептуальный/   -  person Phillip Mills    schedule 28.05.2016
comment
Есть десятки вопросов об «ошибке» дополнительного аргумента в вызове (например, в Связанном списке). Поиск дополнительного аргумента JSONObjectWithData «ошибка» в вызове немедленно обнаруживает решение.   -  person Martin R    schedule 28.05.2016


Ответы (1)


Вероятно, вы пытаетесь использовать вызов Swift 1.x с компилятором Swift 2.x.

Swift претерпел большие изменения между 1 и 2, теперь метод (и большинство других, которые сообщают об ошибках) выдает исключение вместо передачи аргумента ошибки.

текущая документация показывает подпись как:

 class func JSONObjectWithData(_ data: NSData,
                  options opt: NSJSONReadingOptions) throws -> AnyObject 

Чтобы узнать, как обрабатывать исключения, ознакомьтесь с документацией.

person TofuBeer    schedule 28.05.2016