0
한 개체에서 다른 개체로 float 값을 전달하는 데 문제가 있습니다. 첫 번째 방법에서는 괜찮은 것처럼 보이지만 두 번째 방법에서는 값이 큽니다. 내 타입 변환에 문제가 있다고 생각합니다. 왜냐하면 그것이 내가 가장 가난한 것으로 이해하기 때문입니다. 도움이 대단히 감사합니다! 내 게임 컨트롤러에서메서드간에 전달할 때 float 값이 엉망이되고 있습니다 (타입 변환 문제가 있습니까?)
, 내가 이렇게 :
-(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy {
cumulativeScore += score;
NSLog(@"GameMaster - score: %i accuracy %f",cumulativeScore, accuracy);
/* non relevant code clipped */
}
출력 :
게임 컨트롤러의 위임에이 메소드를 호출
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];
GameController - hits: 14 misses: 54 enemies: 35 accuracy: 0.205882
GameMaster - score: 3800 accuracy 36893488147419103232.000000
그럴 수 없어 왜 두 번째 NSLog에서 accuracy
이 올바르지 않은지 알아냅니다.
헤더를 지정하지 않으면 값이 모두 정수로 전달됩니다 (그러나 어떤 이유로 0x60000000이됩니다). 이것을 float 표현으로 변환하면 쓰레기 (3.68935e + 19)가됩니다. – kennytm
Xcode에서 "경고를 오류로 처리"라는 빌드 설정이 있습니다. 그걸 켜십시오. 여기에있는 동안 다음을 켜야하는 다른 경고가 있습니다. http://boredzo.org/blog/archives/2009-11-07/warnings –