1
我正嘗試創建一個父對象,它是Salesforce SDK的子對象。從我可以告訴的是在一個操作中沒有辦法做到這一點,所以我需要先創建父對象,然後逐個創建每個子對象。從新創建的salesforce對象中檢索對象ID
我的問題是,我不確定如何獲得我需要創建它的孩子的新創建的父對象的id。我知道在SFRestDelegate
方法request:didLoadResponse:
中返回的響應包含該id,但我不確定如何在我的創建函數中捕獲該響應。
let api = SFRestAPI.sharedInstance()
var parent = [NSObject : AnyObject]()
parent["Field1__c"] = "Test"
parent["Field2__c"] = "Test"
let createRequest = api.requestForCreateWithObjectType("Parent_Object__c", fields: parent)
api.send(createRequest, delegate: self)
// Need wait for response before continuing...???
// id = ??
for var i = 0; i < 3; ++i {
let child = ["Test_Object__c": id, "Name": "Child1\(i)"]
let createRequest = api.requestForCreateWithObjectType("Parent_Object__c", fields: child)
api.send(createRequest, delegate: self)
}
我想一定有這樣做更有效的方式,但我還沒有找到它的文檔,如果有。
任何幫助,將不勝感激!
問題在於爲每個孩子調用'request:didLoadResponse:'也是如此,那麼我可以用什麼邏輯來區分它們呢? – doovers
您可以使用塊響應處理程序(與內聯匿名回調函數類似的不同設計模式),也可以設置一個標誌來指示您現在正在創建子記錄。在委託內部,你會檢查這個標誌,如果它是假的,請設置它。從那時起,這個標誌將是真實的,你可以在你的委託中處理不同的邏輯。 –
是的,我想到了標誌解決方案,但我更喜歡塊響應處理程序的想法。事實上,這是我想要實現的那種事情,但我不確定如何。你介意用一個例子更新你的答案嗎? – doovers