Iphone Objective-C嵌套块的格式设置提示
我不想在这里开始代码格式化圣战,但我想知道是否有人对如何最好地格式化Objective-C中的嵌套块有什么建议 下面是我今天写的一些代码:Iphone Objective-C嵌套块的格式设置提示,iphone,objective-c,objective-c-blocks,Iphone,Objective C,Objective C Blocks,我不想在这里开始代码格式化圣战,但我想知道是否有人对如何最好地格式化Objective-C中的嵌套块有什么建议 下面是我今天写的一些代码: [UIView animateWithDuration:1.0 animations:^{ self.alpha = 0.5; } completion:^(BOOL finished){ [UIView animateWithDuration:1.0 animatio
[UIView animateWithDuration:1.0
animations:^{
self.alpha = 0.5;
}
completion:^(BOOL finished){
[UIView animateWithDuration:1.0
animations:^{
winView.alpha = 1.0;
}
completion:^(BOOL finished){
winView.alpha = 0.0;
}];
}];
我几乎让Xcode格式化它,这并不可怕。但我有点担心在六个月后我会偶然发现这个来修复一些错误,并想打自己的脸
有人对如何使嵌套块尽可能可读有任何指导吗?这就是为什么通用标准是一个方法或函数只有一个块参数,并且始终将块作为最后一个块。在本例中,这可能是
UIView
提供的最自然的功能,您就可以使用它了
无论如何,你的方法是正确的。如果有的话,我可能会将内部块作为局部变量进行分解,并将其作为参数传递。或者更多的街区
然而,能够选择整个文件并对整个文件进行Xcode重新格式化的方法是一个巨大的时间节约;我一直在选择源上的所有选项卡。将差异和不一致性降至最低。这正是为什么通用标准对方法或函数只有一个块参数,并且始终将块作为最后一个块。在本例中,这可能是
UIView
提供的最自然的功能,您就可以使用它了
无论如何,你的方法是正确的。如果有的话,我可能会将内部块作为局部变量进行分解,并将其作为参数传递。或者更多的街区
然而,能够选择整个文件并对整个文件进行Xcode重新格式化的方法是一个巨大的时间节约;我一直在选择源上的所有选项卡。最大限度地减少差异和不一致性。这里真正的问题是采用多个块参数的方法,这使得它要么丑陋,要么难以读取。我还没有编写任何真正需要使用它的代码,但有一种可能是将
}
和]分开代码>如下所示:
[UIView animateWithDuration:1.0
animations:^{
self.alpha = 0.5;
}
completion:^(BOOL finished){
[UIView animateWithDuration:1.0
animations:^{
winView.alpha = 1.0;
}
completion:^(BOOL finished){
winView.alpha = 0.0;
}
];
}
];
这打破了块的标准格式(将}
和];
放在一起),但我认为它的可读性稍高一些。这里的真正问题是采用多个块参数的方法,这使得它要么难看,要么难以阅读。我还没有编写任何真正需要使用它的代码,但有一种可能是将}
和]分开代码>如下所示:
[UIView animateWithDuration:1.0
animations:^{
self.alpha = 0.5;
}
completion:^(BOOL finished){
[UIView animateWithDuration:1.0
animations:^{
winView.alpha = 1.0;
}
completion:^(BOOL finished){
winView.alpha = 0.0;
}
];
}
];
这打破了块的标准格式(将}
和];
放在一起),但我认为它更具可读性。我建议这样做
[UIView animateWithDuration:0
animations:^
{
[UIView animateWithDuration:1
animations:^
{
<#code#>
}];
}
completion:^(BOOL finished)
{
[UIView animateWithDuration:1
animations:^
{
<#code#>
}
completion:^(BOOL finished)
{
<#code#>
}];
}];
[UIView animateWithDuration:0
动画:^
{
[UIView animateWithDuration:1
动画:^
{
}];
}
完成:^(布尔完成)
{
[UIView animateWithDuration:1
动画:^
{
}
完成:^(布尔完成)
{
}];
}];
默认行为
[UIView animateWithDuration:0
animations:^{
[UIView animateWithDuration:1
animations:^{
<#code#>
}];
} completion:^(BOOL finished) {
[UIView animateWithDuration:1
animations:^{
<#code#>
} completion:^(BOOL finished) {
<#code#>
}];
}];
[UIView animateWithDuration:0
动画:^{
[UIView animateWithDuration:1
动画:^{
}];
}完成:^(布尔完成){
[UIView animateWithDuration:1
动画:^{
}完成:^(布尔完成){
}];
}];
(请注意,它是完全相同的代码)
我知道Xcode强制在同一行中打开大括号,但请注意,在块的情况下,在新行中打开大括号可以让您编写代码4(!!!)倍于左边
另外,我认为它提高了可读性。我建议如何
[UIView animateWithDuration:0
animations:^
{
[UIView animateWithDuration:1
animations:^
{
<#code#>
}];
}
completion:^(BOOL finished)
{
[UIView animateWithDuration:1
animations:^
{
<#code#>
}
completion:^(BOOL finished)
{
<#code#>
}];
}];
[UIView animateWithDuration:0
动画:^
{
[UIView animateWithDuration:1
动画:^
{
}];
}
完成:^(布尔完成)
{
[UIView animateWithDuration:1
动画:^
{
}
完成:^(布尔完成)
{
}];
}];
默认行为
[UIView animateWithDuration:0
animations:^{
[UIView animateWithDuration:1
animations:^{
<#code#>
}];
} completion:^(BOOL finished) {
[UIView animateWithDuration:1
animations:^{
<#code#>
} completion:^(BOOL finished) {
<#code#>
}];
}];
[UIView animateWithDuration:0
动画:^{
[UIView animateWithDuration:1
动画:^{
}];
}完成:^(布尔完成){
[UIView animateWithDuration:1
动画:^{
}完成:^(布尔完成){
}];
}];
(请注意,它是完全相同的代码)
我知道Xcode强制在同一行中打开大括号,但请注意,在块的情况下,在新行中打开大括号可以让您编写代码4(!!!)倍于左边
而且,我认为它提高了可读性