将float变量作为参数传递

时间:2010-10-16 09:07:23

标签: iphone

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

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

这里的进步和总数都是浮动变异。

我试图在不同的类

中调用以下方法
-(void) updateProgress:(float)fl {

}

2 个答案:

答案 0 :(得分:11)

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

将其包装到NSNumber对象中:

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

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

答案 1 :(得分:1)

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

为什么不使用

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