Подавление этого конкретного предупреждения небезопасно. Компилятор должен знать типы аргументов и возвращается к методу для генерации правильного кода.
Например, если вы вызываете такой метод
[foo doSomethingWithFloat: 1.0];
, который принимает число с плавающей запятой, а прототип не виден, тогда компилятор догадывается, что метод принимает значение с двойным числом, а не число с плавающей запятой Это может вызвать сбои и неверно интерпретированные значения. В приведенном выше примере на машине с прямым порядком байтов, такой как машины intel, метод получателя будет видеть 0 пройдено, а не 1.
Вы можете прочитать, почему в документах i386 ABI , или вы можете просто исправить свои предупреждения. : -)