Xcode6 beta3 が一般開発者向けにリリースされ、ダウンロードできるようになりました。
ダウンロードするには開発者アカウント(無償)が必要になります。
Xcode - Downloads - Apple Developer
https://developer.apple.com/xcode/downloads/
Xcode6 beta3を使用してSwift言語でのCLIプログラミングができます。
Xcode6 beta3をインストール後、使用するXcodeを変更
$ sudo xcode-select -switch /Applications/Xcode6-Beta3.app/Contents/Developer
Swift言語でスクリプトの作成
Hello Worldを標準出力するサンプル
$ touch hello.swift
$ chmod +x hello.swift
hello.swift
#!/usr/bin/env xcrun swift -i
var str = "Hello World"
// 標準出力
println(str)
ソースコードを実行
$ ./hello.swift
Macのアラートを表示させるサンプル
$ touch alert.swift
$ chmod +x alert.swift
alert.swift
#!/usr/bin/env xcrun swift -i
import Cocoa
class Alert {
func put(str :String) {
// アラートメッセージを出力
var alert = NSAlert()
alert.messageText = str
alert.runModal()
}
}
let message = "Hello Swift"
var alert = Alert()
alert.put(message)
ソースコードを実行
$ ./alert.swift
HTTP通信の結果表示させるサンプル
$ touch http_request.swift
$ chmod +x http_request.swift
http_request.swift
#!/usr/bin/env xcrun swift -i
import Cocoa
class HttpRequest {
/**
* HTTP通信をして取得結果のBodyを返す
*/
func get(urlStr :String) -> String {
var url = NSURL.URLWithString(urlStr)
var request = NSURLRequest(URL: url)
var response:AutoreleasingUnsafePointer<NSURLResponse?> = nil;
var error: AutoreleasingUnsafePointer<NSErrorPointer?> = nil;
var responseData = NSURLConnection.sendSynchronousRequest(request,returningResponse: response, error:nil) as NSData
if error != nil {
// HTTPエラー時の処理を書く
return ""
} else {
// HTTP通信成功処理を書く
var responseStr:NSString = NSString(data:responseData, encoding:NSUTF8StringEncoding)
// 取得結果を返す
return responseStr
}
}
}
var urlStr = "http://www.yahoo.co.jp"
var http_request = HttpRequest()
var response = http_request.get(urlStr)
// 結果を標準出力
println(response)
ソースコードを実行
$ ./http_request.swift