Я получаю это предупреждение, когда пытаюсь сравнить компоненты RGB двух UIColors
В файле .h я объявил это
-(int) ColorDiff:(UIColor *) color1 :(UIColor *)color2;
В файле .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));
}
И затем в том же файле .m я сравниваю 2 таких UIColor
int d= ColorDiff(C1,C2);// I got the warning right here.
Я провел исследование, и люди говорят, что я должен включить файл заголовка. Я сделал это, но в моем случае не помогло. Почему я получаю эту ошибку?
Объявление в вашем файле .h не соответствует вашей реализации в вашем файле .m.
если реализация вашего метода в вашем .m выглядит следующим образом:
- (int) ColorDiffBetweenColorOne:(UIColor *) color1 AndColorTwo:(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));
}
, тогда вы должны объявить его следующим образом в .h:
- (int) ColorDiffBetweenColorOne:(UIColor *) color1 AndColorTwo:(UIColor *)color2;
и вызвать его из того же файла .m используйте:
int d = [self ColorDiffBetweenColorOne:C1 AndColorTwo:C2];