我正在尝试在 Podio 应用程序的所有项目中执行一个简单的查询。但我不明白如何访问搜索请求的结果。这是我拥有的:
let query = PKTSearchQuery.init(text: "search term")
let search = PKTSearchAPI.requestToSearchInAppWithID(1234567, query: query, offset: 0, limit: 30)
requestToSearchInAppWithID
创建一个 PKTRequest
对象,因此似乎需要通过 PKTResponse
对象返回一些内容。我知道 PodioKit 中的所有内容都是异步的,为 Objective-C 提供的 here 和为 Swift 提供的 here 示例清楚地说明了如何使用 onComplete
、onSuccess
、 接收响应onError
完成 block ,但 PKTSearchAPI
似乎缺少完成 block 。
任何帮助将不胜感激。
最佳答案
您从文档中注意到的完成 block 可在任何 PKTAsyncTask
要在给定PKTRequest
对象的情况下检索PKTAsyncTask
,您可以使用PKTClient
的performRequest
方法。例如,以下代码片段将执行您的搜索请求,然后将结果打印到控制台:
let query = PKTSearchQuery.init(text: "search term")
let search = PKTSearchAPI.requestToSearchInAppWithID(1234567, query: query, offset: 0, limit: 30)
let searchTask = PKTClient.currentClient().performRequest(search)
searchTask.onComplete { [weak self] response, error in
let body = response.body as! [String: AnyObject]
let items = body["results"] as? [[NSObject:AnyObject]]
for item in items! {
print("Search result \(item["rank"]!) title: \(item["title"]!)")
}
}
编辑:有关搜索响应中预期数据的更多信息,请参阅 Podio API Docs for Search
关于objective-c - 我如何使用 PodioKit 和 PKTSearchAPI 在 Podio App 中进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40578963/