У меня есть функция следующим образом:
-(int)ladderCalc:(NSArray*)amounts percentages:(NSArray*)percentages amount:(int)amount
{
// Do some stuff
return foo;
}
Я объявил так в заголовочном файле:
-(int)ladderCalc:(NSArray*)amounts percentages:(NSArray*)percentages amount:(int)amount;
Но я получаю ошибку "неявное объявление функции недопустимо в c99", когда я пытаюсь использовать значение int, возвращенное в другом месте того же файла. Я правильно не объявляю функцию?
UPDATE
Я понимаю, что не объявляю это стандартным способом, я изменил свое объявление на рекомендацию MarkGranoff (см. Изменения выше), но на этот раз я все еще получаю это предупреждение.
Вот контекст того, как я вызываю эту функцию:
-(int)fooTotal: (int)amount
{
int totalFee = 0;
// Declare arguments
NSArray *percentages = [[NSArray alloc] initWithObjects:firstValue, secondValue, thirdValue, fourthValue, fifthValue, nil];
NSArray *amounts = [[NSArray alloc] initWithObjects:sixthValue, seventhValue, eigthValue, ninthValue, nil];
totalFee = ladderCalc(amounts,percentages,amount);
return totalFee;
}
Итак, я все еще получаю предупреждение, хотя, похоже, это имеет смысл в том, что касается стиля Obj-C.
Я почти уверен, что неправильно вызываю эту функцию, я получаю нераспознанную ошибку символа при компиляции проекта.
Undefined symbols for architecture i386:
"_ladderCalc", referenced from:
-[FeeCalcLibrary getMFModelTotal:] in FeeCalcLibrary-A83D2A7637F57664.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)