我认为在过去一年半的时间里,在尝试Cocoa和Cocoa Touch开发的过程中,我一直在努力让Xcode支持一种关键宏来处理这种特定的编码方案......
我经常发现自己不知道在键入新的代码行时有多少消息发送链接在一起。例如,我可能会输入...(管道字符代表光标位置)
someVariable = [someObject someMessage]|
...然后我意识到我需要从返回的对象链接一个消息(因为消息传递nil在ObjC中是安全的,这是一个常见的习惯用法。)所以我需要改变代码行看起来像这样...
someVariable = [[someObject someMessage] |
最大的问题是必须在支架对之前添加一个左括号,我需要在每次需要时使用鼠标或大量重复键敲击。在浪费了大约40个小时后,试图找到任何类型的预先存在的键盘快捷方式或脚本(我调查了Perl,shell脚本,甚至是我的谷歌搜索中的一些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开发人员的痛苦......
答案 0 :(得分:8)
您使用的是什么版本的Xcode?在我的版本中,如果我在有效的选择器名称后键入右括号,则左括号会自动添加。
在Xcode 3.2中,转到“首选项”,然后“文本编辑”,然后选择“插入左括号”。
答案 1 :(得分:4)
如果您遇到Snow Leopard之前,可以尝试使用TextMate作为编辑。它会自动插入匹配的大括号,并支持OS X的版本回到10.4。它有点贵(比BBEdit少,但比Xcode更免费),但它是一个非常好的编辑器。
答案 2 :(得分:0)
在Xcode 3.2之前,我不得不经常处理同样的问题。为我减轻痛苦的是使用带有左/右箭头的Option键来逐字逐句。比等待它跳过要好得多。