斯威夫特& Salesforce SDK,使用SFRestDictionaryResponseBlock

时间:2017-03-05 18:13:13

标签: swift salesforce block objective-c-swift-bridge

我一直在尝试创建删除请求,以使用SFRestAPI从我的自定义对象中删除特定记录。我到目前为止编写的代码是;

let deleteRequest = SFRestAPI.sharedInstance().performDelete(withObjectType: "Event__c", objectId: "Event-00003", fail: { (error :NSError!) -> Void in} as! SFRestFailBlock, complete: SFRestDictionaryResponseBlock)

然而,这会立即引发错误说;

  

无法转换类型的值' SFRestDictionaryResponseBlock.Type' (又名'((可选>) - >())。输入预期的参数类型' SFRestDictionaryResponseBlock' (又名'(可选>) - >()')

我已经能够通过将Fail块强制转换为SFRestFailBlock类型的NSError来解决此问题,但这似乎并不适用于swift中的Complete Block。

块的Salesforce SDK类型定义

public typealias SFRestFailBlock = (Error?) -> Swift.Void
public typealias SFRestDictionaryResponseBlock = ([AnyHashable : Any]?) -> Swift.Void

任何帮助将不胜感激,提前谢谢。

1 个答案:

答案 0 :(得分:0)

长话短说,SalesForce的员工能够为我提供快速解决方案。结果我在之前的一个解决方案中使用了错误的语法。 工作代码是:

        SFRestAPI.sharedInstance().performDelete(
        withObjectType: "Event__c",
        objectId: "a000Y00000B3SGbQAN",
        fail: { (error: Error?) in
            self.log(.debug, msg: "Fail " + (error?.localizedDescription)!)
        }) { (response: [AnyHashable : Any]?) in
            self.log(.debug, msg: "Success" )
        };