以下哪项是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;
...而且不知道步骤是标量属性,还是有一个setter方法等。我更喜欢明确并且会使用......
[view setStep:2.0];
但我猜再次个人偏好。
嗯....点符号最后编译成方括号,但这取决于个人喜好。我个人避免使用点符号,除非我设置/访问标量类型,例如,太容易看下面的内容......
view.step = 2.0;
...而且不知道步骤是标量属性,还是有一个setter方法等。我更喜欢明确并且会使用......
[view setStep:2.0];
但我猜再次个人偏好。
2件事
你没有问过但是 - 我曾经在开头喜欢那些“一行”,但是一段时间后你回到代码时它的可读性就会降低。
点似乎对我来说更具可读性
我希望 -
UITableView* view = (UITableView*)self.view;
view.setSeparatorColor=[UIColor blackColor];
但最终这取决于你自己的喜好。
您也可以使用以下语法在括号内进行转换,并为自己保留一行或两行:
[(UITableView*) self.view setSeparatorColor:[UIColor redColor]];