我如何使用 PodioKit 和 PKTSearchAPI 在 Podio App 中进行搜索?

How can I search within a Podio App using PodioKit and PKTSearchAPI?

我正在尝试对跑道应用程序中的所有项目进行简单查询。但我不明白如何访问搜索请求的结果。这是我拥有的:

    let query = PKTSearchQuery.init(text: "search term")
    let search = PKTSearchAPI.requestToSearchInAppWithID(1234567, query: query, offset: 0, limit: 30)

requestToSearchInAppWithID 创建一个 PKTRequest 对象,因此似乎需要通过 PKTResponse 对象返回一些东西。我知道 PodioKit 中的所有内容都是异步的,here for Objective-C and here 为 Swift 给出的示例清楚地说明了如何使用 onCompleteonSuccessonError 完成块接收响应, 但 PKTSearchAPI 似乎缺少完成块。

如有任何帮助,我们将不胜感激。

您在文档中注意到的完成块可在任何 PKTAsyncTask

上访问

要检索给定 PKTRequest 对象的 PKTAsyncTask,您可以使用 PKTClientperformRequest 方法。例如,以下代码片段将执行您的搜索请求,然后将结果打印到控制台:

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