2011-12-22 74 views
-1

我發現這個問題很奇怪。Objective-C,傳遞float作爲參數

- (void)imageMove:(float)xx y:(NSInteger)yy 
{ 
    NSLog(@"xx=%f,----yy=%d",xx,yy); 
} 

當我調用此函數: [自imageMove:50 Y:50];

日誌顯示:XX = 0.000000,---- YY = 50

+0

它適合我。我得到:'xx = 50.000000,---- yy = 50'。顯示代碼本身的上下文以及請調用它的代碼。 – mattjgalloway 2011-12-22 21:18:33

+0

你總是可以通過添加一個說明符來強制你的整數(50)成爲一個浮點數:'50.f'。 – 2011-12-22 21:20:38

+0

如果(如您在下面的評論中所述)通過調用http://stackoverflow.com/questions/3948255/passing-float-variable-as-parameter解決了問題,那麼您沒有正確顯示您的代碼。你說你調用'[self imageMove:50 y:50]',但該頁面意味着你正在調用某種形式的'performSelector'。所以你錯誤地表達了你實際上在做什麼。這使得它不可能幫助你。 – matt 2011-12-22 23:34:31

回答

0

你有點難以理解自己。當我嘗試這樣做,你說什麼,我得到這個:

xx=50.000000,----yy=50 

因爲這不是你的東西,你必須做一些從你說你在做什麼不同。例如,您可能會從別處忘記的地方撥打imageMove。在您的NSLog行上放置一個斷點,並通過調用堆棧返回以查看真正發生的事情。另外,這樣你可以看到什麼值xx當它作爲參數到達時實際上有。

+0

我像你說的調試,但xx = 0.000000,我解決了我的問題http://stackoverflow.com/questions/3948255/passing-float-variable-as-parameter,我只是不知道爲什麼我不能使用float作爲參數。謝謝。 – droughtrain 2011-12-22 21:28:22

+0

顯示您的*整個*代碼... – matt 2011-12-22 23:00:05