我无法将浮点值从一个对象传递到另一个对象。它在第一种方法中看起来很好,但在第二种方法中它的价值很大。我认为这是我的类型转换的某种问题,因为这是我理解最穷的东西。非常感谢帮助!
在我的游戏控制器中,我这样做:
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];
在游戏控制器的委托中调用此方法:
-(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy {
cumulativeScore += score;
NSLog(@"GameMaster - score: %i accuracy %f",cumulativeScore, accuracy);
/* non relevant code clipped */
}
输出:
GameController - hits: 14 misses: 54 enemies: 35 accuracy: 0.205882
GameMaster - score: 3800 accuracy 36893488147419103232.000000
我无法弄清楚为什么accuracy
在第二个NSLog中不正确。
答案 0 :(得分:1)
!!解决了它。
将此添加到我的委托的标题中修复它:
-(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy;
不知道为什么要修复它,但这会教我将编译器警告视为警告而不是错误。