【问题标题】:Swift & Salesforce SDK, using SFRestDictionaryResponseBlockSwift & Salesforce SDK,使用 SFRestDictionaryResponseBlock
【发布时间】:2017-03-05 18:13:13
【问题描述】:

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

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

但是,这会立即引发错误说;

无法将类型“SFRestDictionaryResponseBlock.Type”(又名“((可选>)->()).Type”)的值转换为预期的参数类型“SFRestDictionaryResponseBlock”(又名“(可选>)->()”)

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

块的 Salesforce SDK 类型定义是

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

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

  • 我不明白你的代码:SFRestDictionaryResponseBlock是一个类型,而不是一个块值。但是,请在 Q 中包含SFRestFailBlockSFRestDictionaryResponseBlock 的定义。可能是参数错误。
  • 我已经添加了 SDK 中的定义。我知道它们是我刚刚引用它们代表块的类型。谢谢

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


【解决方案1】:

长话短说,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" )
        };

【讨论】:

    猜你喜欢
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2023-03-20
    相关资源
    最近更新 更多