Подтвердить что ты не робот

ПРЕДУПРЕЖДЕНИЕ: "неявное объявление функции"... "недействительно в 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 UIColors, как этот

 int d= ColorDiff(C1,C2);// I got the warning right here.

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

4b9b3361

Ответ 1

Это потому, что вы определили свою функцию как метод экземпляра, а не функцию. Существует два решения.

Один из них заключается в изменении объявления вашего метода:

int ColorDiff(UIColor *color1, UIColor *color2) {
    // colorDiff implementation
}

Или вы можете изменить свой вызов на это:

int d = [self ColorDiff:C1:C2];

Ответ 2

Объявление в вашем файле .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

В h.file отсутствует прототип!