Objective-C 2.0 日本語ドキュメントの大切そうな所のメモ
.hと.mの関係
39P @ ObjC.pdf
ただし、すべての実装ファイルは、自身のインターフェイスをインポートする必要があります。た
とえば、Rectangle.mはRectangle.hをインポートします。実装はインポートする宣言を繰り返す
必要がないため、次のものは省略しても支障ありません。
■ スーパークラスの名前
■ インスタンス変数の宣言
ヘッダファイル(.h)で、インスタンス変数の宣言と、スーパークラスの指定をしているので、(.m)では、やらなくてもいいよということ。
sampleAppDelegate.h
#import <UIKit/UIKit.h> @interface sampleAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; } @property (nonatomic, retain) IBOutlet UIWindow *window; @end
sampleAppDelegate.m
#import "sampleAppDelegate.h" @implementation sampleAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; } @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch [window makeKeyAndVisible]; } - (void)dealloc { [window release]; [super dealloc]; } @end
↑これでもいいけど、
#import "sampleAppDelegate.h" @implementation sampleAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch [window makeKeyAndVisible]; } - (void)dealloc { [window release]; [super dealloc]; } @end
↑スーパークラスと、プロパティを省略してもよいのです。
プロパティがたくさんあるときに便利です
XCodeの新規プロジェクトが生成するコードは省略されたものになってます
インスタンス変数には変数名だけでアクセスできる
どこを読めばいいのか?
言語の要約(129P〜)だけさらっと、よんどくだけでいいかも。
全部読んでも、眠くなる一方なのですねえ。