内部メソッドに関して
内部メソッドに関して、
内部で使いたいメソッドを書きたい場合は、
インターフェイスに特に定義しなくとも問題ないです。
外部へ公開するか公開しないか次第で、
インターフェイスへ定義するかしないかが決まります。
あるインターフェイスが下の様な感じだったとします。
#import <Foundation/Foundation.h> @interface TestA : NSObject { @protected NSNumber *number; NSString *value; } - (id)init:(NSNumber *)arg1 value:(NSString *)arg2; - (void)display; @end
あ!ちなみにですね。
インスタス変数のアクセスも同じことがいえます。
通常、アクセッサを書くのですが、特に必要なければ書かなくとも問題ありません。
別にアクセッサ書かなくともイニシャライザでやってしまう方法もありますから。
それで、実装は、こんな感じです。
@implementation TestA - (id)init:(NSNumber *)arg1 value:(NSString *)arg2 { self = [super init]; if (self != nil) { number = arg1; value = arg2; } return self; } - (void)display { NSLog(@"%@",[self joinStr]); } - (NSString *)joinStr { return [NSString stringWithFormat:@"%@ %@",number,value]; } @end
joinStrメソッドが内部でしか使わないものになります。
でも別にメソッドにしなくともいいかもしれません。
ブロックを使えば同じ様なことが出来るので。
- (void)display { // NSLog(@"%@",[self joinStr]); NSString *disp; { disp = [NSString stringWithFormat:@"%@ %@",number,value]; } NSLog(@"%@", disp); }
ただ、ブロック使いすぎると可読性が余り良くなくなっちゃう可能性はありますけど。