概要
このコードを参考に、一部分をコマンドラインで実行できるようにした。
SwiftでWebAPIアプリを作った時の要点 - Qiita
ターミナルからswiftをREPLで起動させてコードをコピペすると、TiqavのWebAPIをたたいてjsonを取得する。
gif
コマンドラインからSwiftを実行する方法
$ sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer
$ xcrun swift
ios - How can I use swift in Terminal? - Stack Overflow
実行するコード
import Foundation
// Thanks to tiqav api! ( http://dev.tiqav.com/ )
var request = NSURLRequest(URL: NSURL(string: "http://api.tiqav.com/search/random.json"))
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
var json: NSArray = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments, error: nil) as NSArray
for item: NSDictionary! in json {
println(item.objectForKey("source_url"))
}
実行結果
$ sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer
$ xcrun swift
Welcome to Swift! Type :help for assistance.
1> import Foundation
2> // Thanks to tiqav api! ( http://dev.tiqav.com/ )
3> var request = NSURLRequest(URL: NSURL(string: "http://api.tiqav.com/search/random.json"))
request: NSURLRequest = {}
4> var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
data: NSData! = 3411 bytes
5> var json: NSArray = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments, error: nil) as NSArray
json: __NSArrayI = @"30 objects" {
[0] =
[1] =
[2] =
[3] =
[4] =
[5] =
[6] =
[7] =
[8] =
[9] =
[10] =
[11] =
[12] =
[13] =
[14] =
[15] =
[16] =
[17] =
[18] =
[19] =
[20] =
[21] =
[22] =
[23] =
[24] =
[25] =
[26] =
[27] =
[28] =
[29] =
}
6> for item: NSDictionary! in json {
7. println(item.objectForKey("source_url"))
8. }
http://apr.2chan.net/may/b/src/1259575702179.jpg
http://feb.2chan.net/jun/b/src/1259078675620.jpg
http://aug.2chan.net/jun/b/src/1288702377863.jpg
http://sep.2chan.net/jun/b/src/1331959816500.jpg
http://jun.2chan.net:81/b/src/1257440956875.jpg
http://apr.2chan.net/jun/b/src/1289270827260.jpg
http://sep.2chan.net/jun/b/src/1287737625271.jpg
http://feb.2chan.net/jun/b/src/1287740142921.jpg
http://jan.2chan.net/jun/b/src/1287221271145.png
http://mar.2chan.net/jun/b/src/1333033557075.jpg
http://apr.2chan.net/jun/b/src/1260208494697.jpg
http://jan.2chan.net/jun/b/src/1287570536309.jpg
http://aug.2chan.net/jun/b/src/1289782701602.png
http://jan.2chan.net/jun/b/src/1357143159406.jpg
http://apr.2chan.net/may/b/src/1259689152133.jpg
http://dec.2chan.net:81/b/src/1259397315084.jpg
http://aug.2chan.net/jun/b/src/1289740533304.jpg
http://jan.2chan.net/jun/b/src/1299366180429.jpg
http://apr.2chan.net/may/b/src/1259008684768.jpg
http://aug.2chan.net/jun/b/src/1338397857881.jpg
http://apr.2chan.net/jun/b/src/1299242054894.jpg
http://jan.2chan.net/jun/b/src/1260334891825.jpg
http://feb.2chan.net/jun/b/src/1299191757914.jpg
http://feb.2chan.net/jun/b/src/1258769251502.jpg
http://jan.2chan.net/jun/b/src/1287214040790.jpg
http://apr.2chan.net/jun/b/src/1332569014437.jpg
http://sep.2chan.net/jun/b/src/1288699390255.gif
http://apr.2chan.net/jun/b/src/1338451261333.jpg
http://apr.2chan.net/may/b/src/1258776572369.jpg
http://feb.2chan.net/jun/b/src/1257779417222.jpg
9>