我发现这个问题很奇怪。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
我发现这个问题很奇怪。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
你有点难以理解自己。当我尝试这样做,你说什么,我得到这个:
xx=50.000000,----yy=50
因为这不是你的东西,你必须做一些从你说你在做什么不同。例如,您可能会从别处忘记的地方拨打imageMove
。在您的NSLog
行上放置一个断点,并通过调用堆栈返回以查看真正发生的事情。另外,这样你可以看到什么值xx
当它作为参数到达时实际上有。
我像你说的调试,但xx = 0.000000,我解决了我的问题http://stackoverflow.com/questions/3948255/passing-float-variable-as-parameter,我只是不知道为什么我不能使用float作为参数。谢谢。 – droughtrain 2011-12-22 21:28:22
显示您的*整个*代码... – matt 2011-12-22 23:00:05
它适合我。我得到:'xx = 50.000000,---- yy = 50'。显示代码本身的上下文以及请调用它的代码。 – mattjgalloway 2011-12-22 21:18:33
你总是可以通过添加一个说明符来强制你的整数(50)成为一个浮点数:'50.f'。 – 2011-12-22 21:20:38
如果(如您在下面的评论中所述)通过调用http://stackoverflow.com/questions/3948255/passing-float-variable-as-parameter解决了问题,那么您没有正确显示您的代码。你说你调用'[self imageMove:50 y:50]',但该页面意味着你正在调用某种形式的'performSelector'。所以你错误地表达了你实际上在做什么。这使得它不可能帮助你。 – matt 2011-12-22 23:34:31