Search code examples
iosswiftparse-platformparse-serverparse-cloud-code

Parse Cloud with Swift PFIdResultBlock Error


 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!!


Solution

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