2012-02-28 19 views
0

私はいくつかのプログラミングをやってると私はまた、同時にいくつかのコードを読んでいると私はこれは、あるメソッドが別のメソッドを呼び出す方法ですか?

-(id)init 
{ 
    if ((self = [super init])) 
    { 
     some code.... 
     [self initEnemy]; 
    } 
    return self; 
} 

、それは

-(void)initEnemy 
{ 
    more code.... 
    [self resetEnemy]; 
} 

、その後..

を持っていることを下回るこのコードに遭遇
-(void)resetEnemy 
{ 
    more code.. etc.. 
} 

私はそれが法initEnemyinitのコールと呼ばれる第一の方法で見る方法ひいてはそれがに呼び出し、。基本的には1つの方法でもう一方の方法が生まれます。 アルゴリズムが正常に形成されています(ほとんどコードを表示していないため、実際にはわかりません)。私はそれを正しい方法で見ていますか?

return self;を実行すると、-(id)initメソッド内で何が起こるかについての説明もありますか。

答えて

1

うん、あなたはその実行シーケンスを正しく読んでいる。


「リターン」方式で行われ、「発信者」方法(誰が最初に最初の場所でそれを呼ぶ)に戻ります。 「自己」は、「自己」の値を呼び出し元に返すべきことを示すためにそこにあります。 (この場合、「自己」は-initで初期化されるオブジェクトのインスタンスを参照します。初期化子について詳しく知りたい場合は、より具体的な質問に分解できます)。

+0

- (id)initメソッドは私のクラスのスーパークラスですか?申し訳ありませんが、私はその方法が混ざっているかもしれません。 –

+1

@ElmedinZelenkic:あなたは、基本的なプログラム制御フローがどのように働くかについて、いくつかの広範な情報を求めています。ここでの私の常識的なアドバイスは、Objective-Cチュートリアルのいくつかの初心者を通過することです。 "init"メソッドの中にある "return"は "to" *自身を返していないので、あなたが表示していないinitメソッドを呼び出した人には*戻ります。そして、それが戻っていることは、それ自身の事実です。 ( "Init"はこの点で少し特殊/混乱しますが、 'self' returnは呼び出し側にオブジェクトのインスタンスを初期化したばかりです。) –

+0

入手しました。私の質問に答えてくれてありがとうございます。 –

関連する問題