ПРЕДУПРЕЖДЕНИЕ: «неявное объявление функции '…' недействительно в C99»

Я получаю это предупреждение, когда пытаюсь сравнить компоненты 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.

Я провел исследование, и люди говорят, что я должен включить файл заголовка. Я сделал это, но в моем случае не помогло. Почему я получаю эту ошибку?

26
задан Brock Adams 14 December 2015 в 07:35
поделиться

1 ответ

Объявление в вашем файле .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];
3
ответ дан 28 November 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: