2010-01-09 2 views
0

Je n'arrive pas à transmettre une valeur flottante d'un objet à un autre. Il semble être bien dans la première méthode, mais dans la seconde, sa valeur est énorme. Je suppose que c'est une sorte de problème avec mon typecasting, parce que c'est la chose que je comprends le plus pauvre. L'aide est grandement appréciée!Le flot est tronqué lorsque vous passez d'une méthode à l'autre (problème de typage?)

Dans mon contrôleur de jeu, je fais ceci:

float accuracy = (float)hitCount/(float)(hitCount+missCount); 
NSLog(@"GameController - hits: %i misses: %i enemies: %i accuracy: %f", hitCount, missCount, escapedCount, accuracy); 
[delegate postGameWithScore:roundScore andAccuracy:accuracy]; 

qui invoque cette méthode dans le délégué du contrôleur de jeu:

-(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy { 
    cumulativeScore += score; 
    NSLog(@"GameMaster - score: %i accuracy %f",cumulativeScore, accuracy); 
    /* non relevant code clipped */ 
} 

Sortie:

GameController - hits: 14 misses: 54 enemies: 35 accuracy: 0.205882 
GameMaster - score: 3800 accuracy 36893488147419103232.000000 

Je ne peux pas comprendre pourquoi accuracy n'est pas correct dans le deuxième NSLog.

Répondre

1

!! résolu.

L'ajout de ce à l'en-tête de mon délégué fixé il:

-(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy; 

Je ne sais pas pourquoi que ce soit réglé, mais ça va me apprendre à traiter les avertissements du compilateur comme des avertissements au lieu d'erreurs.

+1

Si vous ne spécifiez pas l'en-tête, les valeurs seront toutes passées en tant que nombres entiers (mais pour une raison quelconque, il devient 0x60000000). Convertir cela en des représentations 'float' donne la poubelle (3.68935e + 19). – kennytm

+0

Il existe un paramètre de construction dans Xcode nommé "Traiter les avertissements comme des erreurs". Allumez ça. Pendant que vous y êtes, voici un tas d'autres avertissements que vous devriez activer: http://boredzo.org/blog/archives/2009-11-07/warnings –

Questions connexes