为什么Xcode的自动缩进如此糟糕?我怎样才能让它变得更好?

时间:2012-09-11 05:28:16

标签: xcode

我发现自己浪费了很多时间处理XCode的自动缩进,我不得不问我的设置中是否有错误?基本上,如果我花时间在方法中缩进代码,然后复制整个方法并粘贴它,新粘贴的方法不会保留我应用于原始的任何空白区域...

例如,这里是一个截图,其中顶部方法我缩进了数组的所有对象,因此它们排列正确...然后我选择了整个方法,复制并粘贴,你可以看到下面的方法有压痕都搞砸了。

enter image description here

我正在使用Xcode 4.4.1,这是我的设置:

my indentation settings

1 个答案:

答案 0 :(得分:-1)

按预期工作。

…Objects:forKeys:应该对齐,因为它们构成了相同方法签名的一部分。

如果使用新的对象文字语法,可能更容易格式化代码:

- (int)minBrokenPieces {
   NSDictionary *mapping = [NSDictionary dictionaryWithObjects:@[@"3", @"4", @"4", @"5", @"6", @"7", @"8"]
                                                       forKeys:[Note types]];
  [(NSString *)mapping[self.note.type] integerValue];
}

至于代码本身,在一个地方定义这些常量和其他地方的注释类型似乎有点危险。另外,为什么使用字符串,当NSNumbers就足够了?

(此代码假定此函数仅从一个线程调用)。

- (int)minBrokenPieces {
    static NSDictionary *mappings;
    if (!mappings) {
        mappings = @{
            noteType1  : @3,
            noteType2  : @4,
            noteType3  : @4,
            noteType4  : @5,
            noteType5  : @6,
            noteType6  : @7,
            noteType7  : @8,
        };
    }
    NSAssert(mappings[self.note.type] != nil, @"Used a note type for which there is no minBrokenPieces defined");
    return [mappings[self.note.type] intValue];
}