[Swift 3.0] Playground で URLSession を使う

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Playground でネットワーク通信

本日は iPhone 7 & iPhone 7 Plus 発売日ですね!! みなさん予約はされていましたか?

本日は、ちょっとした小ネタで大変恐縮ですが、Xcode 8 の Playground 上で、URLSession を使って簡単な JSON を取得するサンプルを作ったので公開します。大したことはしていません…。

実装コード

以下を Playground にコピペするだけで、URL Session を使った通信処理を試すことができます。

import Foundation
import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true

class Client {
    
    func someTask() {
        let url = URL(string: "http://date.jsontest.com/")!
        let task = URLSession.shared.dataTask(with: url) { data, response, error in
            if let jsonData = data {
                self.printJSON(jsonData)
            }
        }
        task.resume()
    }
    
    func printJSON(_ data: Data) {
        do {
            let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
            print(json)
        } catch {
            print("parse error!")
        }
        
    }
    
}

let client = Client()
client.someTask()

最大のポイントは PlaygroundSupport フレームワークをインポートし、PlaygroundPageneedsIndefiniteExecutiontrue にするところです。こうしないと通信処理はできません。

試す

Playground で実行すると、正常に取得できていることが確認できます。なお、JSON を返す API は http://www.jsontest.com/ を使わせていただきました。

playground_urlsession

まとめ

API の呼び出しテストに使える簡単な実装でした。開発の一助になれば幸いです。