Objective-C,传递 float 作为参数

发布于 2024-12-22 16:33:52 字数 208 浏览 1 评论 0原文

我发现了这个问题,很奇怪。

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

当我调用这个函数时: [自身图像移动:50 y:50];

日志显示:xx=0.000000,----yy=50

I found this problem, which is very weird.

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

when I call this function:
[self imageMove:50 y:50];

the log shows: xx=0.000000,----yy=50

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↘紸啶 2024-12-29 16:33:52

你不知何故让自己感到困惑。当我尝试按照你所说的去做时,我明白了:

xx=50.000000,----yy=50

既然这不是你得到的,那么你所做的事情一定与你所说的不同。例如,您可能从您忘记的其他地方调用imageMove。在 NSLog 行上放置一个断点,然后返回调用堆栈以查看到底发生了什么。另外,这样您就可以看到 xx 作为参数到达时实际具有的值。

You're confusing yourself somehow. When I try doing what you said, I get this:

xx=50.000000,----yy=50

Since that isn't what you get, you must be doing something different from what you say you're doing. For example, you might be calling imageMove from somewhere else that you've forgotten about. Put a breakpoint on your NSLog line and work your way back through the call stack to see what's really happening. Also, that way you can see what value xx actually has when it arrives as an argument.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文