我声明了一个类方法:
+(int)widthScaled:(UIImage *)image maximumHeight:(int)max{
int width = 0;
width = (image.size.width - (((image.size.height - max)*100)/image.size.height)*image.size.width)/100;
return width;
}
在同一个类中,我声明了一个像这样的实例方法:
- (void)generarVistas{
if(...){
...
}else{
for(...){
...
//I need to put the class method here but if I call the class method like this, don't recognize
int variable = [[self class] widthScaled:image maximumHeight:max];
...
}
}
我尝试将class方法放在实例方法中,但不起作用。 我应该指出哪些背景来识别类方法?
答案 0 :(得分:2)
您面临的问题是[self class]
是一个运行时调用,直到运行时才会知道返回结果。编译器不知道它是什么类。您写的代码必须始终从固定的类中调用,所以不要这样做。如果该类是FooClass,则使用以下形式:
int variable = [FooClass widthScaled:image maximumHeight:max];
(将[self class]
替换为您的班级名称,例如FooClass
。)