この記事は公開されてから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 フレームワークをインポートし、PlaygroundPage
の needsIndefiniteExecution
を true
にするところです。こうしないと通信処理はできません。
試す
Playground で実行すると、正常に取得できていることが確認できます。なお、JSON を返す API は http://www.jsontest.com/ を使わせていただきました。
まとめ
API の呼び出しテストに使える簡単な実装でした。開発の一助になれば幸いです。