Objective-C では、メソッドを呼び出す前にメソッドを宣言する必要があるか、少なくともメソッドの実装がファイル内のそのメソッドへの呼び出しの前にある必要があると思いました。しかし、.h またはクラス拡張子で宣言されたプロトタイプがなくても、順序に関係なくメソッドを呼び出すことができるようです。
以下に問題があると思いましたが、正常に動作するので、クラス拡張で「プライベート」メソッドを宣言する必要があるのではないかと思っていますか?
- (id)init
{
self = [super init];
if (self) {
[self methodA];
}
return self;
}
- (void)methodA
{
NSLog(@"method A");
[self methodB];
}
- (void)methodB
{
NSLog(@"method B");
}