クラスで実現できる機能には、次のようなものがあります。
初めて聞いた言葉が多いと思いますが、初めから全ての機能をマスターする必要はありません。必要性の高いものから、少しずつ覚えていきましょう。この中から今回は「プロパティ」「メソッド」「イニシャライザー」について解説します。
インスタンスには「プロパティ」という機能を使って、値を持たせることができます。プロパティを使うことで、状態を表したり、何かしらの情報を持たせたりすることができます。
クラスにプロパティを定義するには、定数や変数の書き方と同様に行います。
class クラス名 { // プロパティを定数として定義 let プロパティの名前 = プロパティの値 // プロパティを変数として定義 var プロパティの名前 = プロパティの値 }
プロパティを定数にしたい場合は「let」から書き始め、変数にしたい場合は「`var`」から書き始めます。また、プロパティは定義時に値を入れなければいけないため、定義すると同時に値を代入します。
例として「ボタン」のクラスに「ラベル」というプロパティを追加してみましょう。次のプログラムを書いてみてください。
class ボタン { var ラベル = "決定" }
これで「決定」という値を持った「ラベル」プロパティを定義することができました。各プロパティには必ず型を決めなければいけませんが、型推論が働くため、このプロパティはString型のプロパティになります。
「ラベル」プロパティは「ボタン」クラスのインスタンスが持つことになりますが、どのような値が入っているか確認したり、変数の場合は再代入したりすることができます。プロパティを利用するには、次のように書きます。
インスタンス.プロパティの名前
インスタンスの後に「.」を書き、続けて対象のプロパティの名前を書きます。「ボタン」クラスのインスタンスが持っている「ラベル」プロパティを利用してみましょう。次のプログラムを書いてみてください。
let 決定ボタン = ボタン() print(決定ボタン.ラベル)
クラスの定義の中で「ラベル」プロパティの値を「決定」としているため、結果画面には「決定」が表示されると思います。
「ラベル」プロパティは変数で定義したため、次のプログラムのように値を再代入することもできます。
決定ボタン.ラベル = "OK!" print(決定ボタン.ラベル)
プロパティを定数で定義した場合は、再代入しようすると、もちろんエラーになります。
2015年9月、Xcodeの最新バージョンである「Xcode 7」がリリースされました。それと同時にSwiftも「Swift 2」にバージョンアップしました。Swift 2では開発者の手助けとなる新しい機能が数多く追加されていますが、一方で本連載でもよく利用していた「println」関数が廃止となり、使えなくなりました。
Swift 2からは「println」関数ではなく、「print」関数を使う必要があります。「print」関数は「println」と同じく、引数で渡された値を出力する関数です。ほぼ同じ関数ですので、いままで「println」と書いていたところを「print」に書き換えるだけで問題ありません。
// Swift 2からは使えない(エラー) println("こんにちは!") // Swift 2からも使える print("こんにちは!")
今までと異なる点は、結果画面に出力される値の最後に「\n」が付いていることです。この「\n」は「改行コード」と言い、改行を表す文字列です。「print」関数は引数で渡された値を出力すると同時に改行も行う関数ですので、「\n」も出力されています。「println」も同じ機能を持っていましたが、Xcode 6までのPlaygroundの結果画面では「\n」が見えない状態で表示されていました。
見慣れない文字が表示されるようになっていますが、「\n」は改行を意味していることを押さえておけば問題ありません。
Copyright © ITmedia, Inc. All Rights Reserved.