iRSSの日記

はてなダイアリーiRSSの日記の続き

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〜)だけさらっと、よんどくだけでいいかも。
全部読んでも、眠くなる一方なのですねえ。