内部で使うインスタンス変数はなるべく.m側に書くようにする。IBOutlet, IBAction も .h に書く必要は無い。
Hoge.h
@interface Hoge : NSObject
- (void)method;
@end
Hoge.m
#import "Hoge.h"
// @interface クラス名() @end の形で書く
@interface Hoge()
{
IBOutlet UIView *view;
IBOutlet UButton *button;
id _object;
}
// メソッドのプロトタイプ宣言
- (IBAction)buttonAction:(id)sender;
- (void)_myMethod;
@end
#pragma mark -
@implementation
- (void)method {}
@end
同様に、公開する必要の無いプロパティも.m側に書ける。
Hoge.h
@interface Hoge : NSObject
// 公開用のプロパティ
@property (assign, nonatomic) NSInteger count;
- (void)method;
@end
Hoge.m
#import "Hoge.h"
@interface Hoge()
{
}
// クラス内で使うプロパティ
@property (retain, nonatomic) NSString *string;
@property (assign, nonatomic) BOOL flag;
@end
#pragma mark -
@implementation
@synthesize string;
@synthesize flag;
@synthesize count;
- (void)method {}
- (void)dealloc
{
self.string = nil;
[super dealloc];
}
@end
このように書けば.hの記述をすっきりさせることができる。