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