悪戦苦闘している Objective-C を ActionScript に例えながら理解を進めるオレメモ。
Objective-C は C のスーパーセット
Objective-C は C の機能が全て使える、ツーことかな。
Objective-C はオブジェクト指向言語。
てことはクラス、インスタンスなことが必要ってことだね。
クラスの作成には、ヘッダーファイルとソースファイル2つのファイルを作成する。
でも、1つのファイルにまとめても可。
良く言えば「柔軟」、悪く言うと「優柔不断」。
好みは「優柔不断」なヤツなので相性は良い、と言い聞かせるオレ。
拡張子
- .h
ヘッダーファイル - .m
ソースファイル
*ソースファイルにヘッダーファイル宣言も書けるらしい
ヘッダーファイル == インターフェース
ヘッダーファイルはインターフェース。
@interface MyClass : NSObject { int count; id data; NSString* name; } - (id)initWithString:(NSString*)aName; + (MyClass*)createMyClassWithString:(NSString*)aNmae; @end |
定義:@interface から @end
クラス名:MyClass
親クラス:NSObject
メンバ変数:count, data, name
*メンバ変数はインスタンス変数・・・
メソッド
- (id)initWithString:(NSString*)aName; + (MyClass*)createMyClassWithString:(NSString*)aNmae; |
-:インスタンスメソッド
+:クラスメソッド
*クラスメソッドは静的(static)
ソースファイル == クラス
#import "MyClass.h" @implementation MyClass - (id)initWithString:(NSString*)aNmae { count = 0; data = nil; name = [ aNmae copy ]; return self; } + (MyClass*)createMyClassWithString:(NSString*)aNmae { return [ [ myClass alloc ] initWithString:aName ] } @end |
ヘッダーファイルをインポート。
定義:@implementation から @end
ヘッダーファイルで定義したメソッドを実装する。
- (id)initWithString:(NSString*)aNma |
(id):戻り値タイプ
initWithString:メソッドシグネチャ
*メソッド名ってことではないんだね、実行(メッセージ送信)方法と関係ある・・・
(NSString*):パラメタ・タイプ
*パラメタ == 引数だよね
aNma:パラメタ名
関数の実行は「メッセージ送信」で、送信の柔軟性が理解進捗を遅くする。
メッセージ送信時とパラメタとメソッド・・・
また今度にしよう。
ピンバック: memo.393 » Blog Archive » [iP]Objective-Cの文法メモ(ActionScript3.0との差異)