Swift基本講座

クラスにイニシャライザを追加する

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
プロパティに設定する初期値を決めておくことができない場合、イニシャライザが必要になります。このレッスンでは、インスタンス作成時に初期化を行うためのイニシャライザの定義方法を説明します。
講師:
05:35

字幕

このレッスンではクラスにイニシャライザを 追加する方法を説明します まずこちらのコードをご覧ください こちらのコードではすべてのプロパティに 現在 Atmos という文字列や― 240 ポイントという数値がセットされています 但しこのように初期値を 決めておけないこともあります 例えば最初の段階ではこの Atmos という 名前が分からないということもあるので そのようなときにはこの名前は文字列だという ことを明示しておかなければなりません そしてこの名前は文字列だという 情報だけでは description などのメソッドで この name を指定する場合に この name がどのような値になっているかー ということが分からないので この name を初期化する為の― イニシャライザ というものを 用意する必要があります イニシャライザ はプレーヤのメソッドと 同じように宣言します 但し関数とは異なりますので イニシャライザには func のキーワードは 必要ありません イニシャライザは init と書いて 丸カッコを2つ付けた形の このような形で書いていきます イニシャライザの中には name の初期化を行うということで name = "Atmos" このように書くとこの名前を Atmos に 初期化するということを伝えることができます このプレーヤを作成しているのはこの var player = Player( ) で Player の初期化を行っている所なんですが この Player の初期化を行うこの段階で Atmos という情報を 名前の情報を渡したいということもあります このようなときにはこのイニシャライザに 引数を追加することで 引数をこの Player() の所から 受け取ることができます 引数は関数と同じように name : String という風に 引数の名前と型を指定して作成します ここで注意して頂きたいのは これでイニシャライザの中では 引数としての name と 属性 (プロパティ)としての name が 混在している形になっていますので この name というのが重ならないように プロパティの方は self.name で 参照します そしてこのプロパティにイニシャライザの 引数として受け取った name を代入すると いうことでこのように書いてやると イニシャライザの中で 受け取ったこの Atmos という文字列で name を初期化することができます 但しここで今エラーが出ていることからも 分かりますが この初期化を行う為の引数には 名前が必要になるので name を Atmos として 初期化して下さいというように name : という ここの引数の 名前の指定が必要になるので注意して下さい このイニシャライザは引数が 1つだけではなく 2つ 3つと引数を増やすことができますので Life の方も Int 型として受け取って Life は最初 Int 型の変数だと いうことだけを宣言しておいて self.Life = Life このように記述することによって ここに新しい Life の情報を追加して 240 ポイントで Player を作成して下さいと このように宣言することができます イニシャライザは1つしか書けないのではなく 複数書くことができますので init() と別のイニシャライザを用意して 引数を受け取らない時には この自分の名前は Atmos で 自分の Life は 240 から始めて下さいと いうように デフォルトの値を全く指定しない時には このように Atmos と 240 にしますよと いうようなイニシャライザを 別途用意することで この Player また別の作り方をしてみますけど 何も引数をつけずに player2 を 作成するということをすると ちょっと名前を変えますね 例えば Titan の Life が 120 と いう風に作成しますが このように引数有りの Player の 作成方法もできますし この時にはこの下の方の 引数付きの init が呼ばれていますが 全く引数を指定せずに作った場合には 上の方のイニシャライザが使われて Atmos と 240 というデフォルトの値が 使われる形になります ここで用意したのはイニシャライザだけですが イニシャライザの他にデイニシャライザと いうものも存在します デイニシャライザというのはこのクラスが オブジェクトが必要無くなった時に 呼ばれるメソッドで 何かしらクリーンアップの処理― 例えばゲームを作っていて テクスチャが必要なくなったとか サウンドファイルが必要なくなったという時に それを解放するという処理を ここで書いてやります 但し Swift の場合はメモリ管理は arc (アーク)という機能で 行われているので 通常このようなクリーンアップの処理も 自動的に行われますので 自分で明示的にクリーンアップの処理を 書かなければいけないということは 比較的少ないのではないかと思います このレッスンではクラスにイニシャライザを 追加する方法について説明しました

Swift基本講座

このコースでは、iOSやOS X用のアプリをとても簡単に開発することができるプログラミング言語Swiftについて解説します。if文やfor文などの制御命令の使い方から変数や定数、配列や辞書の使い方まで基本的なSwiftプログラミングの知識をPlayground上で説明します。Swiftプログラミングの知識を効率的に学ぶのに、このコースをぜひお役立てください。

2時間59分 (35 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年09月23日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。