Weitere ähnliche Inhalte
Mehr von Masayuki Nii (17)
iOS.Dev.Urawa#2-ヘッダ参照の『鶏と卵』問題
- 3. ヘッダとソース
MyAppDelegate.h
@interface MyAppDelegate : NSObject {
}
@end
MyAppDelegate.m
#import “MyAppDelegate”
@implementation MyAppDelegate
@end
MyAppListViewController.h
@interface MyAppListViewController
: NSViewController {
}
@end
MyAppListViewController.m
#import “MyAppListViewController”
@implementation MyAppListViewController
@end
MyAppDetailViewController.h
@interface MyAppDetailViewController
: NSViewController {
}
@end
MyAppDetailViewController.m
#import “MyAppDetailViewController”
@implementation MyAppDetailViewController
@end
3
- 4. 他のクラスを参照する場合
MyAppDelegate.h
@interface MyAppDelegate : NSObject {
UIWindow *window;
MyAppListViewController *listView;
MyAppDetailViewController
*detailView;
}
@end
MyAppDelegate.m
MyAppListViewController.h
MyAppListViewController.m
@interface MyAppListViewController
: NSViewController {
}
@end
#import “MyAppListViewController”
@implementation MyAppListViewController
@end
MyAppDetailViewController.h
@interface MyAppDetailViewController
: NSViewController {
}
@end
MyAppDetailViewController.m
#import “MyAppDetailViewController”
@implementation MyAppDetailViewController
@end
#import “MyAppDelegate”
@implementation MyAppDelegate
@end
エラーになるはず!
4
- 5. 他のヘッダやクラスの定義を追加する
MyAppDelegate.h
@class MyAppListViewController;
@class MyAppDetailViewController;
@interface MyAppDelegate : NSObject {
UIWindow *window;
MyAppListViewController *listView;
MyAppDetailViewController
*detailView;
}
@end
MyAppListViewController.h
@interface MyAppListViewController
: NSViewController {
}
@end
MyAppDetailViewController.h
@interface MyAppDetailViewController
: NSViewController {
}
@end
MyAppDelegate.m
#import “MyAppDelegate”
#import “MyAppListViewController”
#import “MyAppDetailViewController”
@implementation MyAppDelegate
@end
MyAppListViewController.m
#import “MyAppListViewController”
#import “MyAppDelegate”
#import “MyAppDetailViewController”
@implementation MyAppListViewController
UIApplication ap = [UIApplication sharedApplication];
MyAppDelegate *aDel = ap.delegate;
MyAppDetailViewController *dvc = aDel.detailView;
@end
MyAppDetailViewController.m
#import “MyAppDetailViewController”
@implementation MyAppDetailViewController
@end
5
- 8. プリコンパイルヘッダに定義を集める
MyAppDelegate.h
@interface MyAppDelegate : NSObject {
UIWindow *window;
MyAppListViewController *listView;
MyAppDetailViewController
*detailView;
}
@end
MyAppDelegate.m
@implementation MyAppDelegate
@end
MyAppListViewController.h
@interface MyAppListViewController
: NSViewController {
}
@end
MyAppDetailViewController.h
@interface MyAppDetailViewController
: NSViewController {
}
@end
MyApp.pch
@class MyAppDelegate;
@class MyAppListViewController;
@class MyAppDetailViewController;
#import <UIKit/UIKit.h>
#import “MyAppDelegate”
#import “MyAppListViewController”
#import “MyAppDetailViewController”
MyAppListViewController.m
@implementation MyAppListViewController
UIApplication ap = [UIApplication sharedApplication];
MyAppDelegate *aDel = ap.delegate;
MyAppDetailViewController *dvc = aDel.detailView;
@end
MyAppDetailViewController.m
@implementation MyAppDetailViewController
@end
8
- 12. プライベートなメソッドの定義
MyAppDetailViewController.h
@interface MyAppDetailViewController : NSViewController {
@private
UIScrollView *myScroll;
UIView *myContents;
}
@property (retain, nonatmic) IBOutlet UIScrollView *myScroll;
@property (retain, nonatmic) IBOutlet UIView *myContents;
-(void) setupContents: (NSString *)param;
@end
MyAppDetailViewController.m
@interface MyAppDetailViewController()
-(NSArray *)analyzeParameter:(NSString *)p;
@end
←カテゴリの定義
←プライベートメソッド
@implementation MyAppDetailViewController
-(void) setupContents: (NSString *)param
{}
-(NSArray *)analyzeParameter:(NSString *)p
{}
@end
12