webentwicklung-frage-antwort-db.com.de

Der Wert des Typs "[String: String?]" Kann nicht in den erwarteten Argumenttyp "[NSObject: AnyObject]" konvertiert werden.

Wenn ich Parse 1.8.5 zum Hochladen von Daten zu Parse verwende, hat dieser Cloud-Code einen Kompilierungsfehler in "params", den ich nicht debuggen kann.

       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()
            }
        })
10
ios killers

Die Fehlermeldung besagt, dass die Werte von params optionale Typen enthalten.
Stellen Sie sicher, dass alle Werte unverpackt sind.

16
vadian

Ich hatte das gleiche Problem in meinem Projekt. Ich habe gerade meinen Code von let parameters = ["email": mail,"password":passCode ] in let parameters = ["email": mail as! AnyObject,"password":passCode as! AnyObject] geändert. Nicht sicher, ob es etwas anderes betrifft.

1
Joker

Es funktioniert für mich. Versuchen Sie dies: 

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() 
            }
}

Stellen Sie sicher, dass number, username, userPassword, userEmail, sendCode in der genauen Syntax der Parse Cloud sind 

0
AAA

Versuchen Sie dies, um jedes Element in AnyObject umzuwandeln

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