2012-05-10 4 views
7

В Java, когда вы переопределяете метод, вам рекомендуется (почти принудительно) добавить аннотацию @Override. Существует ли конвенция для обозначения (либо в комментариях, либо каким-либо другим механизмом) переопределенных методов в мире Objective-C?Соглашение Objective-C для переопределенных методов

+0

Связанный вопрос: [Objective-C эквивалент переопределения в C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –

ответ

3

Нет. Все методы в Objective-C отправляются через сообщение Objective-C, поэтому все методы могут быть переопределены. Это часть языка.

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

+0

Я знаю что ситуация аналогична с Java - (почти) все функции являются виртуальными, однако я все же вижу, что нужно предупредить, что вы переопределяете родительский метод. Это, безусловно, приведет к ошибкам, не вызывающим '[super loadView];' проще определить –

+0

Вам нужно проверить документацию и прочитать свой метод. Некоторые методы, важно назвать супер. Некоторые методы, очень важно, чтобы вы ** не ** вызывали супер. Раньше я бы сказал, что то, что вы хотите, невозможно для IDE, но очевидно, что Apple может делать почти все, что теперь контролирует компилятор, фреймворк и язык, поэтому, возможно, стоит подать предложение через их ошибку репортер. –

+0

(кстати, отличный вопрос) –

1

Нет, не совсем.

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

1

Я не уверен, если Xcode делает это, но AppCode IDE от JetBrains автоматически помечает перегруженные методы с небольшим синим переназначения значок на полях, например, так:

AppCode Override

, , В дополнение к этому (также показанному), я также хотел бы создать некоторые живые шаблоны (ака-фрагменты кода в Xcode), чтобы аннотировать переопределенные методы тегом #pragma. Я считаю, что это помогает определить стандартную структуру в следующем порядке:

  • методы класса
  • инициализации & разрушения методы
  • публичные методы/протокол
  • Перегруженные методы
  • частные методы

и с помощью живых шаблонов/фрагментов кода. Я могу просто ввести «переопределить [tab]», а среда IDE будет создайте тег #pragma для меня.

. , возможно, вы даже можете использовать OCLint, чтобы проверить, соблюдается ли эта структура.

Смежные вопросы