2011年09月06日

クラス実装部(AppDelegate.m)を読んでみた

昨日はKontiwaAppDelegateクラスの宣言部(.h)を調べましたので
今日はその実装部を調べて見たいと思います。

#import "KontiwaAppDelegate.h"
@implementation KontiwaAppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
}
- (void)applicationWillTerminate:(UIApplication *)application
{
}
- (void)dealloc
{
[window release];
[super dealloc];
}
@end


@implementation クラス名〜 @end に、クラスの実装部を書きます。
@synthesize window; は、宣言部のproperty指定されたインスタンス変数にアクセサを作成します。
※javaのsetWindowとかgetWindowなどを自動生成してくれるようです。便利ですね。

さて、インスタンスメソッドが一杯生成されました。
今日は構文を中心に調べてみたいと思います。

頭に(-)マイナス符号 はインスタンスメソッドで
逆に(+)プラス符号はクラスメソッドのようです。
※javaのstaticのイメージでしょうか。

符号の横にある (void)(BOOL)は返し値のようです。(BOOL)のメソッドは、
最後、return YES; になってますもんね。

返し値の横はメソッド名ですね。そして:の右が引数のようです。

そう考えると!?↓の意味が分かりません!?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
なんとこれは引数一つ一つにラベル名をつけることができるという機能のようです!

[インスタンス名 application:変数1 didFinishLaunchingWithOptions:変数2 ]とメソッドを呼ぶことが出来るようです。
引数が何に使われているかが呼び出し元が意識しやすくていい機能だなぁとおもいました。

selfについてjavaのthisに役割は似ていますけど予約語ではないみたいです。
暗黙の変数らしく id 型で、メソッドを呼び出したインスタンスを参照を保持しています。

superは変数ではないらしく書き換えることが出来きない。(予約語なのかなぁ?)
とにかく、スーパークラスのメソッドを呼び出すことを明示する為だけに使用するみたいです。


明日は、各メソッドの役割を調べて行きたいと思います。
Java人によるObjective-C挑戦

posted by itokami1123 at 23:45| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: