点符号与方括号和Objective-C中的转换

时间:2011-06-09 12:26:40

标签: objective-c coding-style

以下哪项是Objective-C的最佳实践?

UITableView* view = (UITableView*) [self view];
[view setSeparatorColor:[UIColor blackColor]];
[view release];

VS

((UITableView*) self.view).separatorColor = [UIColor blackColor];

或者有更好的方式来写这个吗? self.viewUIView*

我问这两个因为我有一个看起来很怪异的演员(也许有更好的方法?)并且因为官方文档中的以下文字暗示这不仅仅是风格或个人偏好的问题:< / p>

  

另一个优点是编译器在检测到写入只读声明属性的尝试时可以发出错误信号。如果您使用方括号语法来访问变量,那么编译器最好只生成一个未声明的方法警告您调用了一个不存在的setter方法,并且代码在运行时失败。

3 个答案:

答案 0 :(得分:12)

嗯....点符号最后编译成方括号,但这取决于个人喜好。除非我设置/访问标量类型,否则我个人会避免使用点符号,例如,查看以下内容太容易了...

view.step = 2.0;

...并且不知道步骤是标量属性,还是有setter方法等。我更喜欢明确并且会使用......

[view setStep:2.0];

但我想再次个人偏好。

答案 1 :(得分:3)

2件事

  1. 你没有问过但是 - 我以前喜欢那些“一行”,但是一段时间后你回到代码时它的可读性就会降低。

  2. 点似乎对我来说更具可读性

  3. 我更喜欢 -

        UITableView* view = (UITableView*)self.view;
        view.setSeparatorColor=[UIColor blackColor];
    

    但最终这取决于你自己的喜好。

答案 2 :(得分:0)

您也可以在括号内进行投射,并使用以下语法为自己保留一行或两行:

[(UITableView*) self.view setSeparatorColor:[UIColor redColor]];