Невозможно преобразовать значение типа '[String: String?]' В ожидаемый тип аргумента '[NSObject: AnyObject]?'

Когда я использую Parse 1.8.5 для загрузки данных в Parse, этот код облака имеет ошибку компиляции в параметрах, которые я не могу отлаживать.

       let params = ["phoneNumber" : userPhoneNumber, 
                    "username": username,
                    "password": userPassword,
                    "Email": userEmail
                     ]  

        PFCloud.callFunctionInBackground("sendCode", withParameters: params, block: 
              { (response: AnyObject?, error: NSError?) -> Void in
            if response?.localizedDescription != nil {
                print(error)
                var alert = UIAlertView(title: "Failure", message: "SignUp Error", delegate: self, cancelButtonTitle: "OK")
                alert.show()
            } else {
                self.activityIndicator.stopAnimating()
            }
        })

Ответ 1

В сообщении об ошибке указано, что в значениях params есть необязательные типы.

Убедитесь, что все значения развернуты.

Ответ 2

У меня была одна и та же проблема в моем проекте. Я только что изменил свой код от let parameters = ["email": mail,"password":passCode ] до let parameters = ["email": mail as! AnyObject,"password":passCode as! AnyObject]. Не уверен, что это влияет на что-то еще.

Ответ 3

Это работает для меня. Попробуйте следующее:

let parameters = ["number": number, 
                  "username": username,
                  "password": userPassword,
                  "Email": userEmail]
PFCloud.callFunctionInBackground("sendCode", withParameters: parameters) { results, error in
            if error != nil {  
                 print(error)   
            } else {
                self.activityIndicator.stopAnimating() 
            }
}

Убедитесь, что number, username, userPassword, userEmail, sendCode находятся в точном синтаксисе в Parse Cloud

Ответ 4

Попробуйте сделать это, чтобы вывести каждый элемент в AnyObject

    let params = ["phoneNumber" : userPhoneNumber as! AnyObject, 
                "username": username as! AnyObject,
                "password": userPassword as! AnyObject,
                "Email": userEmail as! AnyObject
                 ]