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

你的呢?


当前回答

⇧⌘。它会构建和分析,这意味着Xcode会警告你可能的泄漏。

其他回答

我已经为NSObject, UIView和UIViewController创建了自己的文件模板,所以当我创建新类时,这些文件都设置了私有部分,并在init和dealloc中记录类的地址。

示例(命名为'test'的NSObject派生类将像这样开始):

//=====================================================
// Private Interface
//=====================================================

@interface test (private)
@end

//=====================================================
// Public Implementation
//=====================================================

@implementation test

- (void)dealloc {
    NSLog(@">>> Dealloc: test [0x%X]", self);
    [super dealloc];
    NSLog(@"<<< Dealloc: test");
}

- (id) init
{
    self = [super init];
    if(self) {
        NSLog(@">>> Alloc: test [0x%X]", self);
    }
    return self;
}

@end

//=====================================================
// Private Implementation
//=====================================================

@implementation test (private)
@end

这方面有很多可用的资源,例如Cocoa dev:设计自己的Xcode项目模板。

通过命令行控制Xcode的文本编辑器:xed

> xed -x                # open a new untitled document
> xed -xc foo.txt       # create foo.txt and open it
> xed -l 2000 foo.txt   # open foo.txt and go to line 2000

# set Xcode to be your EDITOR for command line tools
# e.g. for subversion commit
> echo 'export EDITOR="xed -wcx"' >> ~/.profile

> man xed               # there's a man page, too

切换到头文件/源文件

选项命令⌘向上箭头↑ 查看>切换到头文件/源文件

在。m和。h文件之间切换。

在Xcode 4中,这是ctrl⌘向上箭头↑

1. "objc_exception_throw"的断点

在objc_exception_throw上应该始终有一个断点。

2. 调试“僵尸”变量的保留/释放问题

使用以下代码:

NSZombieEnabled = YES;
NSDeallocateZombies = NO;

... 调试保留和释放问题。要了解更多信息,请参阅Apple调试应用程序文档中的“查找内存泄漏”部分。

3.从Interface Builder跳转到Xcode中的类

命令⌘+双击接口生成器的文档窗口中的对象,跳转到Xcode中的该类。这对于File's Owner来说非常方便。

4. 在接口生成器中重用自定义对象

将自定义对象拖回接口生成器的库以供以后重用。

5. 在“接口生成器”中选择重叠项

控制⌃Shift +在Interface Builder中点击一个对象,可以看到鼠标下所有对象的菜单。

6. 界面构建器手势指南

界面构建器手势指南。

Cmd-/自动插入“//”进行注释。从技术上讲,敲击键盘的次数相同,但感觉更快……

此外,默认的项目结构是将资源和类文件放在不同的位置。对于大量代码,请创建逻辑组,并将相关代码和xib文件放在一起。在XCode中创建的组只是逻辑结构,不会改变文件在磁盘上的位置(尽管如果你愿意,你可以将它们设置为复制真实的目录结构)