传递浮点变量作为参数

发布于 2024-09-27 13:42:03 字数 398 浏览 1 评论 0原文

我正在尝试编写一个带有 float 参数的方法,并使用 PerformSelector` 调用它,但在执行此操作时遇到错误。以下是我的代码:

[sender performSelector:selector withObject:progress/total];

这里的进度和总计都是 float 变量。

我试图在不同的类中调用以下方法:

-(void) updateProgress:(float)fl {
    
}

I am trying to write a method with float parameter and call it using performSelector` but I am getting error in doing this. Following is my code:

[sender performSelector:selector withObject:progress/total];

Here progress and total both are float variable.

I am trying to call following method in different class:

-(void) updateProgress:(float)fl {
    
}

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

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

发布评论

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

评论(2

淡墨 2024-10-04 13:42:03

您需要传递一个真实的对象,而不是像 int 或 float 这样的基本类型之一。

将其包装到 NSNumber 对象中:

[sender performSelector:selector withObject:[NSNumber numberWithFloat:progress/total]];

-(void) updateProgress:(NSNumber *)aProgress {
   float fProgress = [aProgress floatValue];
}

You need to pass a real object, not one of the basic types like int or float.

Wrap it into an NSNumber object:

[sender performSelector:selector withObject:[NSNumber numberWithFloat:progress/total]];

-(void) updateProgress:(NSNumber *)aProgress {
   float fProgress = [aProgress floatValue];
}
南冥有猫 2024-10-04 13:42:03

这是因为 -performSelector:withObject: 仅适用于Objective-C 对象float 不是其中之一。

为什么不直接使用呢

[(TheClass*)sender updateProgress:progress/total];

It's because -performSelector:withObject: only works for Objective-C objects. float isn't one of these.

Why not just use

[(TheClass*)sender updateProgress:progress/total];

?

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