当我试图比较两个UIColors的RGB组件时,我收到了这个警告
在.h文件中,我声明了这一点
-(int) ColorDiff:(UIColor *) color1 :(UIColor *)color2;
Run Code Online (Sandbox Code Playgroud)
在.m文件中
- (int) ColorDiff:(UIColor *) color1 :(UIColor *)color2{
... //get RGB components from color1& color2
// compute differences of red, green, and blue values
CGFloat red = red1 - red2;
CGFloat green = green1 - green2;
CGFloat blue = blue1 - blue2;
// return sum of squared differences
return (abs(red) + abs(green) + abs(blue));
}
Run Code Online (Sandbox Code Playgroud)
然后在同一个.m文件中,我比较了2个这样的UIColors
int d= ColorDiff(C1,C2);// I got the warning right here.
Run Code Online (Sandbox Code Playgroud)
我做了研究,人们说我必须包含头文件.我这样做但在我的情况下没有帮助.为什么我收到此错误?
Ric*_*III 22
这是因为您将函数定义为实例方法,而不是函数.有两种解决方案.
其中一个是将您的方法声明更改为:
int ColorDiff(UIColor *color1, UIColor *color2) {
// colorDiff's implementation
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以将呼叫更改为:
int d = [self ColorDiff:C1:C2];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49921 次 |
| 最近记录: |