iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
SwiftはCocoaフレームワークの為に設計されたプログラミング言語だ。
簡単なクラスの定義と実装は以下のとおり。
import Cocoa // 1
class Song: NSObject { // 2
var title: String // 3
init(title: String) { // 4
self.title = title
}
func play() { // 5
// ... 再生処理
}
}
上記で定義したクラスをインスタンス変数の生成とメソッド呼び出し、プロパティの参照は以下のとおり。
let song = Song(title: "Maybellene") // 1
song.play() // 2
println("\(song.title)") // 3
Swiftではカテゴリを拡張(Extensions)と呼んでいる。
extension String {
func reverse() -> String {
var charadterArray: Charater[] = Character[]()
for haracter in self {
charadterArray.append(character)
}
var reverseString: String = ""
for var i = characterArray.count - 1; 0 <= i; i-- {
reverseString += characterArray[i]
}
return reverseString
}
}
Stringクラスにreverseメソッドが追加された事を確認する。
let hello = ""
let reverseString = hello.reverse()
println("\(reverseString)")
プロトコルはプロトコル(Protocols)だ。先ほどのSongクラスのメソッドをプロトコルで宣言するように変更してみよう。
protocol Playable {
func play()
func stop()
}
class Song: NSObject, Playable {
var title: String
init(title: String) {
self.title = title
}
func play() {
println("... 再生処理")
}
func stop() {
println("... 停止処理")
}
}