2010-05-02 2 views
0

Что-то действительно странное происходит: когда я вызываю foo (100 * 1.0f), где-то вдоль линии, которая становится 0. Чтобы проверить, что я поставил точку останова на foo(), она действительно равна нулю, и это действительно получает вызов со 100 * 1.0f. Код находится в Obj-C++.Параметр становится нулевым где-то

Вот функция вызова в БГД интерфейсе XCode, поскольку вы можете видеть, оценка * scoreMultiplier составляет 100. Calling Function http://img341.imageshack.us/img341/1109/screenshot20100502at135.png

void JNPP1PGameController::addScoreToPlayer(NSInteger score) { 
    if(!gameOver){ 
     JNLogString(@"Adding score(%d*%f) to player", score, scoreMultiplier); 
     [player addScore: score*scoreMultiplier]; 
     [wrapper setShouldNotify]; 
     [wrapper notify]; 
    } else { 
     JNLogString(@"Not adding score(%d*%f) because GAME IS OVAR", score, scoreMultiplier); 
    } 
} 

А вот вызываемая функция в GDB фронтэнда XCode, вот _SCORE является 0. Called Function http://img156.imageshack.us/img156/1109/screenshot20100502at135.png

- (void) addScore:(NSInteger) _score { 
    score += _score; 
    JNLogString(@"Player can has %d points.. HURRAY!!!", score); 
} 
+3

Пометка вопроса «mistery» не поможет вам получить мнения или ответы. В будущем попытайтесь правильно пометить вопросы. – Oded

+1

code please ... – swegi

+0

Извините, Oded, я не мог найти популярные теги, чтобы они соответствовали. Спасибо, что добавили их. – Nick

ответ

0

код был установлен путем изменения кода вызова на это:

void JNPP1PGameController::addScoreToPlayer(NSInteger score) { 
    if(!gameOver){ 
     JNLogString(@"Adding score(%d*%f) to player", score, scoreMultiplier); 
     NSInteger _score = score*scoreMultiplier; 
     JNLogString(@"This is the case: %d", _score); 
     [player addScore: _score]; 
     [wrapper setShouldNotify]; 
     [wrapper notify]; 
    } else { 
     JNLogString(@"Not adding score(%d*%f) because GAME IS OVAR", score, scoreMultiplier); 
    } 
} 

Я предполагаю, что что-то пошло не так с кастом на неопределенный (я получил «метод не найден») тип параметра.

Смежные вопросы