我发现自己在处理Xcodes自动缩进上浪费了太多的时间,以至于我不得不问是否我的设置有什么问题。基本上,如果我花时间在一个方法中缩进代码,然后复制整个方法并粘贴它,新粘贴的方法不会保留我应用到原始方法中的任何白色。例如,这是一个截图,上面的方法我缩进了数组中的所有对象,这样它们就可以正确地排列,然后我选择了整个方法,复制并粘贴,你可以看到下面的方法把缩进都弄乱了。
我使用的是Xcode 4.4.1,以下是我的设置:
wooyq4lh1#
按预期工作。…Objects:和forKeys:应该对齐,因为它们构成同一方法签名的一部分。如果使用新的对象文本语法,则可能更容易格式化代码:
…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已经足够了,为什么还要使用字符串呢?(This代码假定仅从一个线程调用此函数)。
- (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]; }
1条答案
按热度按时间wooyq4lh1#
按预期工作。
…Objects:
和forKeys:
应该对齐,因为它们构成同一方法签名的一部分。如果使用新的对象文本语法,则可能更容易格式化代码:
至于代码本身,在一个地方定义这些常量而在其他地方定义注解类型似乎有点危险。还有,既然NSNumbers已经足够了,为什么还要使用字符串呢?
(This代码假定仅从一个线程调用此函数)。