编码Objective-C时,是否可以做某事。像:
{
UIView *viewOne = [[UIView alloc] init];
// do stuff with view
[self addSubview:viewOne];
[viewOne release];
} //View 1
{
UIView *viewTwo = [[UIView alloc] init];
// do stuff with view
[self addSubview:viewTwo];
[viewTwo release];
} //View 2
当我曾经做过类似的事情时,XCode不抱怨并且它在iOS 4.3.3上运行。 我的问题是,如果这使我的代码与iOS 3.1.3或其他东西不兼容,因为这看起来像我可能正在使用的块。 我想将它主要用于代码可读性和折叠。
答案 0 :(得分:1)
您在那里所做的就是创建单独的范围。第一个范围内声明的任何内容都不可用于第二个范围。
这是完全合法的C(因为Objective-C只是C的严格超集,它也很好)。
我已经在很多项目中看到了它。但是,我自己从未使用它,因为它可以被视为一种分离方法的一些方式,这种方法并不特别相关,可能表示代码质量很差 - 而不是我说你的代码很差!
这些也不是C块,就像在“闭包”中一样,C块看起来像
^{
//code
}
这是最基本的形式。
答案 1 :(得分:1)
这是C的特征已经存在了很长时间。它被称为“复合语句”或“块语句”,但它与Apple最近推出的“块”扩展无关。它只是一种对多个语句进行分组并为变量建立范围的方法。
答案 2 :(得分:0)
使用花括号完全没问题就像你的可读性一样。编译器不会抱怨:P
答案 3 :(得分:0)
是的,这是可能的。但相反,这会创建一个方法:
-(void)addView:(UIView*)view{
...
}
它更具可读性和清晰度。此外,没有代码重用。