Как вернуться, когда функция вызывается из другой функции? программирование iPhone - PullRequest
2 голосов
/ 23 февраля 2012

Я работаю над своей первой игрой для iPhone, и мне интересно, как вернуть значение из функции, когда эта первая функция вызывает вторую функцию? Функции возвращают bool с.

Вот пример кода:

// 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 ]

4 голосов
/ 23 февраля 2012

Я не уверен, что понимаю тебя. Просто верните его:

return [self inrect:_point:0];
2 голосов
/ 23 февраля 2012

Я не уверен, что понимаю вашу проблему, но, возможно, вы хотите сделать это:

- (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];
    }
...