В Java, когда вы переопределяете метод, вам рекомендуется (почти принудительно) добавить аннотацию @Override
. Существует ли конвенция для обозначения (либо в комментариях, либо каким-либо другим механизмом) переопределенных методов в мире Objective-C?Соглашение Objective-C для переопределенных методов
ответ
Нет. Все методы в Objective-C отправляются через сообщение Objective-C, поэтому все методы могут быть переопределены. Это часть языка.
Для этого не существует никакого соглашения. Это часть языка, на котором это происходит, и если бы вы прокомментировали иначе, это просто сбило бы с толку, когда вы это делали позже, случайно или намеренно.
Я знаю что ситуация аналогична с Java - (почти) все функции являются виртуальными, однако я все же вижу, что нужно предупредить, что вы переопределяете родительский метод. Это, безусловно, приведет к ошибкам, не вызывающим '[super loadView];' проще определить –
Вам нужно проверить документацию и прочитать свой метод. Некоторые методы, важно назвать супер. Некоторые методы, очень важно, чтобы вы ** не ** вызывали супер. Раньше я бы сказал, что то, что вы хотите, невозможно для IDE, но очевидно, что Apple может делать почти все, что теперь контролирует компилятор, фреймворк и язык, поэтому, возможно, стоит подать предложение через их ошибку репортер. –
(кстати, отличный вопрос) –
Нет, не совсем.
Это не имеет большого значения, вероятно, из-за динамической отправки.
Я не уверен, если Xcode делает это, но AppCode IDE от JetBrains автоматически помечает перегруженные методы с небольшим синим переназначения значок на полях, например, так:
, , В дополнение к этому (также показанному), я также хотел бы создать некоторые живые шаблоны (ака-фрагменты кода в Xcode), чтобы аннотировать переопределенные методы тегом #pragma. Я считаю, что это помогает определить стандартную структуру в следующем порядке:
- методы класса
- инициализации & разрушения методы
- публичные методы/протокол
- Перегруженные методы
- частные методы
и с помощью живых шаблонов/фрагментов кода. Я могу просто ввести «переопределить [tab]», а среда IDE будет создайте тег #pragma для меня.
. , возможно, вы даже можете использовать OCLint, чтобы проверить, соблюдается ли эта структура.
- 1. Ограничения для переопределенных общих методов
- 2. Быстрые комментарии документации для переопределенных методов?
- 3. Как обеспечить безопасность потоков для переопределенных методов?
- 4. Есть ли соглашение для отображения переопределенных методов в диаграммах статического класса UML?
- 5. Соглашение об именовании методов
- 6. Вызов методов, переопределенных в подклассе из суперкласса
- 7. Печатные заявления внутри переопределенных методов не отображаются
- 8. Почему мы должны расширять доступность переопределенных методов?
- 9. Переопределение уже переопределенных методов в производном классе
- 10. Метод суперкласса с использованием переопределенных методов подкласса
- 11. Соглашение об именах для методов синтаксического сахара
- 12. Соглашение о строительстве для нескольких методов, если
- 13. Соглашение об именах для методов расширения Rx?
- 14. Clojure gen-class для перегруженных и переопределенных методов
- 15. Как автоматически обновить * этот тип возвращаемого значения для переопределенных методов?
- 16. Почему Java обеспечивает совместимость возвращаемого типа для переопределенных статических методов?
- 17. Почему «виртуальный» необязателен для переопределенных методов в производных классах?
- 18. Автоматически создавать пользовательские JavaDoc комментарии для переопределенных методов
- 19. Преобразование методов из Java-actionscript в ObjectiveC
- 20. Решение для переопределенных систем
- 21. Есть ли соглашение для заводского метода в Swift?
- 22. Соглашение об именах для методов структуры для нескольких целей
- 23. Соглашение об именовании C# для методов расширения для интерфейса
- 24. VS2010 C# cant см. Без переопределенных методов управления
- 25. C# - Вызов переопределенных методов в производных классах в порядке наследования
- 26. связано с использованием переопределенных методов, ограничений типов и ... type erasure
- 27. Java - принудительное наследование 1 из N переопределенных абстрактных методов
- 28. ActiveAdmin: маршруты для переопределенных контроллеров
- 29. Какое предпочтительное соглашение Java для именования статических методов-конструкторов
- 30. правильное соглашение об именах для методов тестирования junit
Связанный вопрос: [Objective-C эквивалент переопределения в C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –