我正在尝试使用float参数编写一个方法并使用performselector调用它,但是我在执行此操作时遇到错误。以下是我的代码:
[sender performSelector:selector withObject:progress / total];
这里的进步和总数都是浮动变异。
我试图在不同的类
中调用以下方法-(void) updateProgress:(float)fl {
}
答案 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];