以下是我的iOS应用中的一小段代码:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
为什么Xcode缩进行如此血腥?作为一个旧的Perl,Ruby和JavaScript猴子,我更倾向于手动缩进它:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Do you like my hat?"
message: @"If so, please help spread the word by rating our app now?"
delegate: nil
cancelButtonTitle: @"No Thanks"
otherButtonTitles: @"Sure!", @"Maybe Later", nil
];
因此参数名称和值都是左对齐的,并且只缩进一个级别(对我来说是4个空格)。这使用了更少的屏幕空间,而且我不太可能在MacBook Air上处理包裹线(这使得最右边的缩进内容甚至更难阅读)。
但是,我认为Apple有一些理由更喜欢第一种方法,因此有这样的Xcode缩进。或者有吗?
所以我有两个问题:
不要试图在这里开始圣战;我对Objective-C程序员中的最佳实践,Xcode如何帮助这些实践,以及找出Xcode的默认方式是否有充分的理由更加好奇。
更新:评论者和回答指出默认格式将冒号对齐。我应该记得在张贴之前,因为我当然注意到了它,当最长的项目没有缩进时,它看起来很漂亮。但我发现,通常情况下,最长的项目 缩进了很多。例如:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
为什么?即使我希望它们在冒号处对齐(我经常手工格式化它们),但是将它们缩进这么多似乎很愚蠢。为什么它坚持缩小开放结肠的水平?为什么不只是一个缩进级别,结束括号,以显示缩进“阻止”的结束?例如:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
这似乎比the Google style guide's line length recommendation更好,不是吗?
有没有办法调整Xcode以这种方式格式化参数?
答案 0 :(得分:5)
1)当给出多个参数时,Objective-c缩进约定在冒号处对齐。
例如
功能:
- (void)functionWithOne:(NSString *)one two:(NSString *)two tree:(NSString *)three;
必须格式化为:
- (void)functionWithOne:(NSString *)one
two:(NSString *)two
three:(NSString *)three;
我来自Java,起初我很难习惯。但尝试不同几次后,这真的是最好的方式。
2)我不认为(我不确定)你可以在xcode中改变它。 Apple的惯例非常明确。
编辑: 调用。我个人从第一个参数开始,并将其余部分对齐:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil];
答案 1 :(得分:3)
我不确定如何在Xcode中对其进行格式化,但代码格式化工具有两个选项: