2017-03-05 22 views
0

我一直在試圖創建一個刪除請求從使用SFRestAPI我的自定義對象刪除特定的記錄。我迄今爲止寫的代碼是;斯威夫特與Salesforce的SDK,使用SFRestDictionaryResponseBlock

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 

任何幫助將不勝感激,謝謝提前。

+0

我不明白你的代碼:'SFRestDictionaryResponseBlock'is一個類型,而不是格擋值。然而,包括SFRestFailBlock'的'的定義和'SFRestDictionaryResponseBlock'in你問:也許參數是錯誤的。 –

+0

,因爲它們是在SDK我已經添加了定義。我知道他們是我只是參考他們代表塊的類型。謝謝 – Matqo

回答

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") 
     };