Вопрос новичка - несколько параметров - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь реализовать закрытый метод, который принимает NSMutableDictionary и объект Player в качестве своих параметров.Поскольку это частный метод, он существует только в файле .m.

Он объявлен как

-(void) incrementScore: (NSMutableDictionary*) scoreboard  forPlayer: ( Player* ) player {

, и я вызываю его следующим образом:

      [ self incrementScore:deuceScore forPlayer:p];

Однако он не скомпилируется - я получаю

, возможно, не отвечает на сообщение -incrementScore: forplayer

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

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

Компилятору нужно где-нибудь найти объявление для вашего метода, прежде чем использовать его. Это можно сделать тремя способами:

  1. Объявите метод в (public) @interface для класса в его файле .h.
  2. Объявите метод в расширении класса (полуприватное @interface, обычно вверху файлов .m).
  3. Определите метод где-то в @implementation перед вашим первым использованием.
0 голосов
/ 21 июля 2011

Это только предупреждение, а не ошибка компиляции ... (если вы изменили настройки для обработки всех предупреждений как ошибки, это будет ошибка компиляции).

Возможно, строка, вызывающая метод, находится выше (в файле .m) метода объявления. Переместите метод чуть ниже директивы @implementation или над методом с вызывающей линией. Предупреждение / ошибка должны исчезнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...