2011-12-22 75 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