随着大量的Xcode新手的涌入,我相信会有很多Xcode的技巧和技巧可以分享。

你的呢?


当前回答

你可以让Xcode在Info上运行预处理器。plist文件:

        <key>CFBundleShortVersionString</key>
    #ifdef DEBUG
        <string>1.0 (debug)</string>
    #else
        <string>1.0</string>
    #endif

详情见http://developer.apple.com/technotes/tn2007/tn2175.html。

其他回答

Xcode支持文本宏,可以通过编辑菜单末尾的插入文本宏菜单调用。它们也可以使用Code Sense (Xcode的代码补全技术)来调用。

例如,键入键序列pi m control-period将插入#import "file"到你的代码中,file作为一个可编辑的标记,就像代码完成一样。

当键入一个方法时,按ESC键查看代码完成选项(毫无疑问,这已经在前面提到过)。我已经知道这一点,但今天我发现,如果你按下代码完成窗口右下角的按钮(它要么是'A',要么是Pi),你可以在字母排序和按类层次排序之间切换。

突然之间,这个窗口就有用了!

能够快速查看可以从超类中重写的所有方法。例如,当扩展UITableViewController时,我只需要输入我的实现:

- ta

然后我按ESC键,看到我的超类中所有以“ta”开头的方法,比如

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

这也适用于采用协议。

我刚刚发现了如何改变文本宏中使用的缩进行为:

例如,如果你和我一样,不喜欢这个:

if (cond) {
  code;
}

但我更喜欢这样:

if (cond)
{
  code;
}

然后你可以通过在终端中设置以下默认值来全局(所有语言)更改此设置:

defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict-add BlockSeparator "\n"

这个问题已经困扰我很多年了,我希望其他人也会感兴趣。

这个特性的文档可以在Xcode用户默认参考中找到

使用]自动插入[到正确的位置

我来自。net背景,所以我习惯于输入一个符号,然后输入它的一个方法名。所以我总是忘记在开始输入对象名称之前包含[。通常这意味着我需要转到行首并手动添加[。我没有意识到我只需在当前光标位置按下],它就会自动添加。

有几种方法可以使用它:要么在输入函数名之后,要么在输入函数名之前。

方法一:在函数名后面

myObject testMethod]

... 就变成:

[myObject testMethod]

…插入符号位于]之后。

方法二:在函数名前面

myObject]

... 就变成:

[myObject ]

... 插入符号位于]的正前方。

后者(2)的优点是代码补全将根据对象的方法进行筛选。而对于前者(1),如果你试图在myObject之后立即调用代码补全,它将不会被过滤。(2)的另一个优点是它的行为更像其他使用点表示法的编程语言。然后只需输入对象的名称[而不是]。访问一个方法。