Вы должны ввести тип:
MONType * obj = [ArrayOfViews objectAtIndex:i];
Затем вызвать метод с использованием типизированных переменной:
[obj myMethodWithInt:<#number#> andExample:<#char#>];
Это может быть жалуясь по целому ряду причин. Введение типа будет либо фиксировать эти категории проблем, либо, по крайней мере, дать вам более полезное предупреждение. В частности, компилятор не видит объявления метода экземпляра -myMethodWithInt:andExample:
.
Возможно, вы либо не импортировали заголовок, либо объявили метод таким образом, чтобы он отображался в переводе.
Мой код работает, но должен ли я исправить это предупреждение или нет?
Возможно. Иногда это «работает». Это эквивалентно отсутствующим прототипам функций C89, которые были поэтапны из-за всех проблем, которые они вызвали. Таким образом, неявные параметры и возвращаемые типы могут работать, если параметры и тип возврата id
совместимы (включая NSObject
подклассы). Но если это не совпадение, вам следует ожидать неопределенного поведения. Вы можете избежать всего этого и ввести осмысленную проверку типов с помощью соответствующих импортов и деклараций в ваших программах и путем введения типа, как показано выше. Это полезно, потому что компилятор спасет вас от множества глупых ошибок при работе и по мере развития кодовых баз.
Вы всегда должны пытаться исправить предупреждения в C и базовых кодах Objective-C; они обычно указывают на серьезные (и часто фатальные) проблемы. – jlehr
Вот почему я много работаю, чтобы обнаружить tand fix them =) – user2057209