iOSアプリの基本的な構造を学ぶPart4
今回は実際にViewControllerクラスに機能を追加してみようと思います。
まず、ヘッダファイル(ViewController.h)でcounterプロパティとfullName:lastName:メソッド、countUpメソッドを宣言します。
続いて実装ファイルにfulName:lastName:メソッドとcountUpメソッドを実装します。
次にcounterプロパティとfulName:lastName:メソッドとcountUpメソッドを試したいと思います。
メソッドを実行する時は、[オブジェクト メソッド]を使います。
ViewContrllerクラスのメソッドをViewControllerクラスで使うとき、[self メソッド名];
の書式で実行します。同様にViewContrllerクラスのプロパティをViewControllerクラスで使うとき[self.プロパティ]または[_プロパティ]と入力します。
では、ViewDdLoadメソッド内で実行してみようと思います。ViewDidLoadメソッドはViewControllerが管理している画面が読み込まれた時に実行するメソッドです。
コードは以下です。
デバッグエリアは以下です。
次回はアウトレットとアクションを学習します。
下記GitHubのURLです。
iOSアプリの基本的な構造を学ぶPart3
今回は実装ファイルの基本的な構造を学習します。基本的な構造は以下のようになります。
#import
クラスのヘッダファイルやフレームワークを指定する。クラスのヘッダファイルを必ずインポートする
クラスエクステンション @interface~@end
“クラス内だけ”で使うインスタンス変数、プロパティ変数、メソッドを宣言します。宣言する変数やメソッドがない場合はいらない。
@inplementation~@end
ヘッダファイル&クラスエクステンションで宣言したプロパティの初期化やメソッドの定義を行う。メソッドは宣言した書式と会うようにデータ型、変数を定義する。
実装ファイルの実際のコードをViewController.mを見て確認してみました。
メソッドのオーバーライド
インプリメンテーションセクションではviewDidLoadメソッドとdidReceiveMemoryWarningメソッドが定義してあります。ですが、ViewControllerクラスのヘッダファイル(.h)のインプリメンテーションセクションではメソッド宣言がありませんでした。
つまり、スーパークラスのメソッドをサブクラスで再定義しているのです。これを「オーバーライド」と言います。簡単に言うと上書きです。(参照:http://wisdom.sakura.ne.jp/programming/objc/objc6.html)
再定義されているメソッドを見るとメソッド名をsuper(スーパークラス)に対して送っています。
これによって機能の追加を含めた上書きを可能にしているのです。
次回は実装ファイル(.m)の練習をしてみます。
下記GitHubのURLです。
iOSアプリの基本的な構造を学ぶPart2
今回はヘッダファイル(.h)の構造を学習します。
ヘッダファイルの基本的な構造は大まかに以下のようになっているそうです。
#import
#importはクラス定義で使用するフレームワークやソースファイルを読み込む命令文です。
@interface~@end
@interfaceの行ではクラス名と継承するスーパークラス名、プロトコル(実装するメソッド名やプロパティなどが書いてある規格書)を宣言します。
@interfaeから@endまでがインターフェースセクションでこの中でインスタンス変数やメソッド等を宣言します。
インスタンス変数宣言
インスタンスの宣言は{}内で行います。書式は
データ型 変数名;
です。
プロパティ変数宣言
プロパティ宣言した変数は他のクラスから読み書きできるオブジェクトの属性になります。書式は
@property (属性) データ型 プロパティ名;
です。属性のオプションは沢山あるようです。今後つまづいたときまた検索しようと思います。例えばこんなサイトもあります。
iOS - Objective C のプロパティ属性まとめ - Qiita
メソッド宣言
メソッド宣言ではメソッド書式を書きます(要クラスリファレンス参照)。+は暮らすメソッド、-はインスタンスメソッドです。返値(メソッドを実行した結果の返ってくる値)が無い場合はvoidをデータ型に設定します。書式は
+(返り値のデータ型)メソッド名;(データ型)引数 ラベル2:(データ型)引数2 ・・;
-(返り値のデータ型)メソッド名;(データ型)引数 ラベル2:(データ型)引数2 ・・;
次回は実装ファイル(.m)の構造を学習しようと思います。
下記GitHubのURLです。
iOSアプリの基本的な構造を学ぶPart1
Objective-Cの基本文法はさらっとやって、これからはiOSアプリの基本的な構造を学習して行きたいと思います。
参考図書:詳細!Objective-C
ヘッダファイルと実装ファイル
図示したように拡張子.hのファイルが「ヘッダファイル」、拡張子が.mのファイルが「実装ファイル」、二つが協力してクラスを定義しています。
振り返りますが、クラスとはオブジェクトを作る大事な設計図です。
Class Prefixというところをいじると、入力した文字が各クラスの接頭語として付きます。
AppDelegateクラスとViewControllerクラスはiOSアプリの基本となるクラスで、
となっております。
ストーリーボード
Main.storiyboadファイルは、画面デザインとセグエ(矢印)で画面遷移を行う設定を行うファイルです。
使用方法の一例を以下に示します。
①アシスタントエディタを開き、ストーリーボードの画面でGUI部品(今回はスイッチ)とコードを[control]キー&ドラッグで接続
②設定を選んでコネクション
③実際にプロパティ宣言のコードが出来ている
今回は以上です。
下記GitHubのURLです。
DaikiHosokawa/practice · GitHub