Xcode: возможно автоматическое создание заглушек для методов, требуемых интерфейсом протокола?
Исходя из фона Eclipse/Java, одна из моих любимых функций - возможность быстро заглушить все методы, требуемые интерфейсом. В Eclipse я могу выбрать "переопределить/реализовать" из исходного меню, чтобы генерировать методы заглушки для любого метода интерфейса.
Я хотел бы сделать то же самое в Objective-C. Например, если я объявляю класс, который реализует протокол "NSCoding", я хотел бы, чтобы Xcode автоматически генерировал методы, необходимые для реализации этого протокола. Это разочаровывает необходимость поиска, а затем копировать/вставлять подписи необходимых методов каждый Протокол, который я пытаюсь реализовать.
Я некоторое время пытался выяснить, возможно ли это, но пока не нашел ничего обещающего. Возможно ли это в XCode?
Ответы
Ответ 1
Accessorizer будет писать методы кодирования и декодирования для переданных ему ivars (протокол NSCoding и архивирование NSDocument). Он также будет генерировать строковые константы либо static, либо #define с пользовательским префиксом; copyWithZone:; и другие вещи, если вам нужно - все из простого ярлыка через Службы или с панели инструментов. Архивирование с ключом в Accessorizer
Ответ 2
Я считаю, что Accessorizer будет делать то, что вы хотите.
Ответ 3
Не самый тяжелый ответ, просто намекните:
Из коробки XCode не может.
Но AppCode может.
Он может делать это автоматически (с вашего разрешения, конечно).
Если некоторые методы протокола, помеченные как @required
- AppCode, будут выделять реализацию и предложить реализовать эти методы.
![example]()
@optional
также доступны для автоматического использования (ярлык: элемент управления + I).
Ответ 4
Можно создать сценарии для элемента меню сценариев в AppleScript, Perl, Python, Ruby или любых других языках сценариев, которые входят в меню сценариев.
Вы можете разместить точку вставки в файле .m и найти script соответствующий файл .h. Найдите поддерживаемые протоколы и т.д....
MacTech опубликовал статью в 2007 году Скрипты меню Xcode
Ответ 5
Xcode 3.2 будет автозаполнять известные реализации методов. Другими словами, если метод объявлен где-то (например, в протоколе), когда вы начнете вводить его в файл .m, Xcode 3.2 автоматически закроет подпись метода для вас. Это не совсем то, о чем вы просили, но это очень удобно.
Ответ 6
Я также ищу способ создания меток для протоколов в моем файле заголовка. Я проверил Accessorizer и, похоже, это удобный инструмент, но если я не пропустил что-то, я не нашел способ заставить его создавать меток для протокола.
Эрик. Если вы нашли другое решение, напишите, что вы нашли. Удивительно, что XCode еще не встроил в среду IDE.
Ответ 7
Поскольку принятая ответная ссылка не работает больше (и перенаправляется на объявление), здесь другое хорошее объяснение того, как использовать accessorizer для создания заглушек протокола.
Ответ 8
Основываясь на AllanCraig "Создайте @property, @synthesize и dealloc из декларации переменной" ruby script, я сделал один для создания экземпляров реализации из интерфейсных: http://pastebin.com/4T2LTBh6
Как использовать?
- Установите script на свой XCode (оболочка Script) и назначьте для него ярлык (например, CMD + 5).
- Выберите строки из файла интерфейса, в котором вы хотите сгенерировать реализацию, и нажмите горячую клавишу.
- Ваш .m будет содержать выбранные вами методы.
Ответ 9
Я знаю, что это старый вопрос, но если вы хотите всегда видеть последние определения, просто щелкните правой кнопкой мыши на рассматриваемом классе и перейдите к определению. Здесь lyes все текущие не устаревшие функции, поэтому вы не полагаетесь на третью сторону, чтобы оставаться в курсе последних событий.
Ответ 10
В моем случае Стиль ниже меня очень помогает, в некотором смысле решил мою проблему.
Предположим, что у вас есть следующее объявление метода:
+(DBManager*)getSharedInstance;
Из файла реализации вы начинаете вводить + ge и xcode автоматически выбирает метод
+(DBManager*)getSharedInstance;