Ошибка времени выполнения переменной - PullRequest
0 голосов
/ 10 марта 2012

Я делаю приложение для iPhone с cocos2d, и каждый раз, когда я пытаюсь вернуть переменную из функции, я получаю ошибку во время выполнения по приведенному ниже коду ...

     GB2ShapeCache *cache = [GB2ShapeCache sharedShapeCache];
    //EXC_BAD_ACCESS run time error here
    *eggFixture = [cache addFixturesToBody:body forShapeName:@"egg3"];

Я не знаю, чтоЯ делаю неправильно ... вот код для addFixturesToBody ...

-(b2Fixture) addFixturesToBody:(b2Body*)body forShapeName:(NSString*)shape
{
    BodyDef *so = [shapeObjects objectForKey:shape];
    assert(so);
    b2Fixture *Fixi;
       FixtureDef *fix = so->fixtures;
    while(fix)
    {
        Fixi = body->CreateFixture(&fix->fixture);
        fix = fix->next;
    }

    return *Fixi;
}

и здесь я определяю свою переменную eggFixture

b2Fixture *eggFixture;

, и здесь я пытаюсь использоватьb2fixture eggFixture позже

for(pos = _contactListener->_contacts.begin(); 
        pos != _contactListener->_contacts.end(); ++pos) {
        MyContact contact = *pos;

        if ((contact.fixtureA == locations.platformFixture && contact.fixtureB == eggFixture) ||
            (contact.fixtureA == eggFixture && contact.fixtureB == locations.platformFixture)) {
            NSLog(@"Ball hit bottom!");
        }
    }

Любая помощь?спасибо:)

1 Ответ

0 голосов
/ 10 марта 2012

Похоже, body ноль.Здесь, безусловно, произойдет сбой, когда значение body равно nil:

Fixi = body->CreateFixture(&fix->fixture);

В этой статье есть несколько советов по устранению проблем, таких как EXC_BAD_ACCESS.

...