トップ «前の日記(2014-06-14) 最新 次の日記(2014-07-07)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|

2014-07-06 [OSX][iOS]はじめましてSwift

SwiftはCocoaフレームワークの為に設計されたプログラミング言語だ。

簡単なクラスの定義と実装は以下のとおり。 


import Cocoa                // 1
 
class Song: NSObject {      // 2
    var title: String       // 3
 
    init(title: String) {   // 4
        self.title = title
    }
 
    func play() {           // 5
        // ... 再生処理
    }
}
1
Cocoaフレームワークを利用する。
2
NSObjectクラスのサブクラスSongの宣言。
3
String型のtitleプロパティの宣言。
4
イニシャライザ
5
メソッドの定義

上記で定義したクラスをインスタンス変数の生成とメソッド呼び出し、プロパティの参照は以下のとおり。


let song = Song(title: "Maybellene")    // 1
song.play()                             // 2
println("\(song.title)")                // 3
1
Songクラスのインスタンス変数を生成。
2
playメソッドを呼び出す。
3
titleプロパティの値を印字。

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("... 停止処理")
    }
}

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)

トップ «前の日記(2014-06-14) 最新 次の日記(2014-07-07)» 編集