我正在尝试编写一个带float
参数的方法并使用 performSelector 调用它,但是这样做时出错了。以下是我的代码:
[sender performSelector:selector withObject:progress/total];
在这里,进度和总数都是float
可变的。
我正在尝试在不同的类中调用以下方法:
-(void) updateProgress:(float)fl {
}
我正在尝试编写一个带float
参数的方法并使用 performSelector 调用它,但是这样做时出错了。以下是我的代码:
[sender performSelector:selector withObject:progress/total];
在这里,进度和总数都是float
可变的。
我正在尝试在不同的类中调用以下方法:
-(void) updateProgress:(float)fl {
}
您需要传递一个真实的对象,而不是 int 或 float 等基本类型之一。
将其包装成一个NSNumber
对象:
[sender performSelector:selector withObject:[NSNumber numberWithFloat:progress/total]];
-(void) updateProgress:(NSNumber *)aProgress {
float fProgress = [aProgress floatValue];
}
这是因为-performSelector:withObject:
仅适用于Objective-C 对象。float
不是其中之一。
为什么不直接使用
[(TheClass*)sender updateProgress:progress/total];
?