Я думаю, что за последние полтора года, экспериментируя с разработкой Cocoa и Cocoa Touch, я изо всех сил пытался заставить Xcode поддерживать своего рода ключевой макрос для обработки этого конкретного сценария кодирования ...
Я часто не знаю заранее, сколько сообщений отправляется в цепочку во время ввода новой строки кода. Например, я мог бы напечатать это ... (Символ трубы представляет местоположение курсора)
someVariable = [someObject someMessage]|
... Затем я понимаю, что мне нужно связать сообщение от возвращенного объекта (поскольку в ObjC безопасен обмен сообщениями nil, это обычная идиома.) Поэтому мне нужно изменить строку кода, чтобы она выглядела следующим образом ...
someVariable = [[someObject someMessage] |
Большая проблема заключается в том, что перед парой скобок, в конце которой я нахожусь, стоит поставить перед левой скобкой левую скобку, что повлекло бы за собой использование мыши или многократных нажатий клавиш каждый раз, когда мне нужно было это сделать. Потратив около 40 часов свободного времени и пытаясь найти какой-либо существующий ранее ярлык или сценарий клавиатуры (я исследовал Perl, сценарии оболочки и даже немного сценариев emacs Lisp в моем поиске.), Я собрал воедино это чудовище в AppleScript, всего ...
tell application "System Events"
delay 0.2
set editMenu to menu "Edit" of menu bar item "Edit" in menu bar 1 of
process "Xcode"
set kLeftArrowKey to 123
key code kLeftArrowKey
set theMenu to menu item "Balance" in menu "Format" of menu item
"Format" in editMenu
click theMenu
set theMenu to menu item "Bracket Expression" in menu "Objective C"
of menu item "Objective C" in menu "Insert Text Macro" of menu
item "Insert Text Macro" in editMenu
click theMenu
key code kLeftArrowKey
end tell
Должен быть лучший путь.
Я считаю, по крайней мере, пять проблем с вышеизложенным ... (которые я прокомментирую, если их спросят.) Я все время вижу частые онлайн-жалобы от новых разработчиков ObjC по поводу этого синтаксиса, и я подозреваю, что эта проблема типизации основной больной вопрос. Хотя мне нравится, как читается синтаксис (настолько, что я избегаю точечной нотации для свойств из-за непоследовательности кода), как это вначале написано отстой. (Как и по иронии судьбы AppleScript, учитывая мою текущую взломанную реализацию.)
Помогите мне положить конец моим страданиям, и вы, вероятно, положите конец многим другим разработчикам ObjC ...