2016-11-13 14 views
0

私はPodioアプリ内のすべてのアイテム内で簡単なクエリを実行しようとしています。しかし、私は検索要求の結果にアクセスする方法を理解していません。ここで私が持っているものだ:何かがPKTResponseオブジェクトを介して返される必要があるようですのでPodioKitとPKTSearchAPIを使用してPodio App内を検索するにはどうすればよいですか?

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

requestToSearchInAppWithIDPKTRequestオブジェクトを作成します。 PodioKitのすべてが非同期であり、Objective-Cの場合はhere、Swiftの場合はhereの例では、onCompleteonSuccessonErrorの完了ブロックを使用して応答を受け取る方法を明確にしていますが、PKTSearchAPIには完了ブロックがありません。

ご協力いただければ幸いです。あなたがドキュメントから指摘

答えて

4

完了ブロックが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

+0

を参照して、検索応答に期待することができます私の質問にお答えいただきありがとうございます。私は自分自身でそれを理解したことはありませんでした。私は 'PKTAsyncTask'を直接返す' PKTSearch'がなぜ存在しないのだろうと思います。 – user3803526