编码风格 - 点符号与方括号和Objective-C中的强制转换



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

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

与。

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

还是有更好的写法? self.view是一个UIView*.

我问这两个原因是因为我有一个看起来很奇怪的演员阵容(也许有更好的方法?(,也因为官方文档中的以下文字,暗示这不仅仅是风格或个人喜好的问题:

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

嗯....点符号最后编译到方括号,但这取决于个人喜好。我个人避免点表示法,除非我正在设置/访问标量类型,例如,查看以下内容太容易了......

view.step = 2.0;

。并且不知道 step 在哪里是标量属性,或者有一个 setter 方法等。我更喜欢明确,并且会使用...

[view setStep:2.0];

但我想又是个人喜好。

2 件事

  1. 你没有问这个问题,但是 - 我曾经喜欢一开始的那些"一行",但一段时间后,当你回到代码时,它的可读性就不那么好了。

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

我宁愿——

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

但归根结底,这是你自己的喜好问题。

您也可以在

括号内强制转换,并使用以下语法为自己节省一两行:

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

最新更新