![](/img/trans.png)
[英]Salesforce MobileSDK iOS persisting OAuth token after uninstall
[英]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.