簡體   English   中英

使用iOS MobileSDK同步執行SalesForce SOQL查詢

[英]Execute SalesForce SOQL queries synchronously using iOS MobileSDK

我正在使用最新的Salesforce Mobile SDK來開發iOS應用程序以與CRM進行交互。

我有2個SOQL查詢要同步執行,以便從第一個查詢檢索到的數據可以在第二個查詢中使用。 Salesforce Mobile 6.1的選項如下:

    let restApi  = SFRestAPI.sharedInstance()
 restApi.Promises.query(soql: "SELECT Id,FirstName,LastName FROM User")
 .then { request in
    restApi.Promises.send(request: request)
 }
 .done { sfRestResponse in
    restResponse = sfRestResponse.asJsonDictionary()
    ...
 }
 .catch { error in
   //handle error
 }

但是在最新的SDK中,Promises已過時。 使用最新的SalesForce Mobile SDK同步執行SOQL查詢的更好方法是什么。

Salesforce iOS SDK 6.2版使用PromiseKit來同步鏈接異步任務(例如Web請求)。 即使在他們的7.0 SDK中不立即支持它,您仍然可以將其導入以在項目中使用: PromiseKit

如果您想使用新的7.0 SDK在本地完成相同的功能,最簡單的方法是鏈接回調:

let queryRequestOne = RestClient.sharedInstance().buildQueryRequest(soql:"SELECT ... FROM ...")

RestClient.sharedInstance().send(request: queryRequestOne, onFailure: { (error, urlResponse) in
    SFSDKLogger.sharedInstance().log(type(of:self), level:.debug, message:"Error invoking: \(queryRequestOne)")
}) { [weak self] (response, urlResponse) in

    //Parse data from web response
    //..

    let queryRequestTwo = RestClient.sharedInstance().buildQueryRequest(soql:"SELECT ... FROM ...")

    RestClient.sharedInstance().send(request: queryRequestTwo, onFailure: { (error, urlResponse) in
        SFSDKLogger.sharedInstance().log(type(of:self), level:.debug, message:"Error invoking: \(queryRequestTwo)")
    }) { [weak self] (response, urlResponse) in

        //Parse data from web response and update UI on main thread

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM