2012-02-23 8 views
2

私は最初のiPhoneゲームに取り組んでおり、この最初の関数が2番目の関数を呼び出すときに、関数から値を返す方法が不思議です。関数はboolを返します。ここで関数が別の関数から呼び出されたときに戻る方法は? iPhoneプログラミング

は、いくつかのサンプルコードです:ここで

// This is sample calls to inrect functions: 
[menuButton inrect:point] // Calls the first function which calls second function 
[menuButton inrect:point:0.5] // No problem because calls the second function directly 

は関数です:

- (BOOL) inrect:(CGPoint)_point{ 
    [self inrect:_point:0]; //call second function with offset of 0 
    return 0; //How do I return the value of the above call? 
} 

- (BOOL) inrect:(CGPoint)_point:(float)offset{ 
    if (_point > 0 && offset > 1) { 
     return YES; 
    } 
    if (_point < 0 && offset < 1) { 
     return YES; 
    } 
    return NO; 
} 

私が直接、第2の機能を呼び出しても問題はありませんが、最初の関数を呼び出すときに、そのターン中2番目の関数を呼び出すと、2番目の関数の値を最初の関数に正しく戻して、呼び出し元に戻すことができます。私は、私はあなたを取得していますかわからない

おかげ

答えて

4

。ただ、それを返す:

return [self inrect:_point:0]; 
+0

はい、これは私が必要なものです!今非常に明らかです。ありがとう – jsherk

2

私はあなたの問題を理解することはわからないけど、多分あなたはこれをしたい:

- (BOOL) inrect:(CGPoint)_point 
    { 
     BOOL aBool = [self inrect:_point:0]; //put the return in a BOOL and do what you want with it 
     NSLog(@"Not expecting to this, but I do!"); 
     return 0; 
    } 

EDIT

- (BOOL) inrect:(CGPoint)_point 
    { 
     return [self inrect:_point:0]; 
    } 
+0

私は 'return aBool; 'を意味すると思います – sch

+0

確かに、彼は彼のコードを編集しました。それは今より明確です:-) – Franck

関連する問題