2017-03-05 21 views
0

SFRestAPIを使用してカスタムオブジェクトから特定のレコードを削除するための削除要求を作成しようとしました。私がこれまでに書いたコードは、SFRestDictionaryResponseBlockを使用したSwift&Salesforce SDK

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

ただし、これはすぐにエラーをスローします。

型 'SFRestDictionaryResponseBlock.Type' の値に変換できません - 予想引数の型に(別名 '((オプション>)>())タイプ。') 'SFRestDictionaryResponseBlock'(別名「(オプション>) - >( ) ')

私は、これはしかし、迅速で完全なブロックのために動作するようには思えないタイプSFRestFailBlockのNSErrorとして失敗ブロックを鋳造することにより、この問題を回避することができました。

SalesforceのSDK型定義ブロックは任意の助けが理解されるであろう

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

あるため、事前に感謝します。

+0

私はあなたのコードを理解していない: 'タイプではなく、ブロック値をSFRestDictionaryResponseBlock'is。しかし、あなたのQに 'SFRestFailBlock'と' SFRestDictionaryResponseBlock'の定義を含めてください。おそらくパラメータが間違っています。 –

+0

SDKにあるように定義を追加しました。私は彼らがブロックであることを参照していたタイプであることを知っています。ありがとう – Matqo

答えて

0

簡単に言えば、SalesForceのメンバーは私にこれを迅速に解決することができました。私は以前の解決策の1つで間違った構文を使用しています。 作業コードは次のとおりです。

 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") 
     }; 
関連する問題