-->

Parse Cloud with Swift PFIdResultBlock Error

2019-03-03 08:12发布

问题:

 PFCloud.callFunctionInBackground("hello", withParameters: ["test":"tester"]) {
            (response: AnyObject?, error: NSError?) -> Void in
            if error == nil {
                let responseString = response as? String
                print(responseString)
            } else {
                print(error!.description)
            }
        }

I am getting the error:

Cannot convert value of type '(AnyObject?, NSError?) -> Void' to expected argument type 'PFIdResultBlock?' (aka 'Optional<(Optional, Optional) -> ()>')

Even if I add as! PFIdResultBlock, the error will not go away.

How can I go about fixing this?

I definitely appreciate your help on this one!!

回答1:

There is no need to specify the variable types while implementing the closure (Block in Objective-C) unlike Objective-C. You just need to change your code to the following:

PFCloud.callFunction(inBackground: "",
                         withParameters: ["": ""]) { (response, error) in
                            if error == nil {
                                let responseString = response as? String
                                print(responseString)
                            } else {
                                print(error?.localizedDescription)
                            }
}