Objective c 目标C:在消息中使用点表示法是一种不好的做法吗?
我找不到一个类似的问题,所以我决定问它(这可能更适合问程序员,如果是这样的话,我提前道歉) 在消息调用中使用点表示法是否不好,如:Objective c 目标C:在消息中使用点表示法是一种不好的做法吗?,objective-c,syntax,Objective C,Syntax,我找不到一个类似的问题,所以我决定问它(这可能更适合问程序员,如果是这样的话,我提前道歉) 在消息调用中使用点表示法是否不好,如: [self.view addSubView:otherView]; 与之相反: [[self view] addSubView:otherView]; 我只是好奇,它看起来有点奇怪,但我看不出有什么问题。我对Objective-C还比较陌生,还不熟悉任何值得注意的最佳实践。这根本不是一个糟糕的实践。但这只是一个惯例 你觉得好的东西都可以用 您应该使用什么使代码可
[self.view addSubView:otherView];
与之相反:
[[self view] addSubView:otherView];
我只是好奇,它看起来有点奇怪,但我看不出有什么问题。我对Objective-C还比较陌生,还不熟悉任何值得注意的最佳实践。这根本不是一个糟糕的实践。但这只是一个惯例 你觉得好的东西都可以用 您应该使用什么使代码可读。 比如:
employee.name.address.city.zip
看起来像是:
[employee [name [address [city zip]]]]
甚至我也犯了上面的错误。这就是你的可读性
实际上应该是:
[[[[employee name] address] city] zip]
同样,获取参数的方法不能与点表示法一起使用,您需要使用括号
double amount=[self calculateInterestOnPrincipal:10000 rate:5.5 year:6]
这根本不是一个坏习惯。但这只是一个惯例 你觉得好的东西都可以用 您应该使用什么使代码可读。 比如:
employee.name.address.city.zip
看起来像是:
[employee [name [address [city zip]]]]
甚至我也犯了上面的错误。这就是你的可读性
实际上应该是:
[[[[employee name] address] city] zip]
同样,获取参数的方法不能与点表示法一起使用,您需要使用括号
double amount=[self calculateInterestOnPrincipal:10000 rate:5.5 year:6]
没什么问题。这只是一个文体问题。你喜欢哪个就用哪个。(顺便说一句,点表示法的优点是,如果使用点表示法调用未声明的属性getter或setter,编译器会抛出一个错误,因此可以在编译时消除一些奇怪的运行时错误。)它没有错。这只是一个文体问题。你喜欢哪个就用哪个。(顺便说一句,点表示法的优点是,如果使用点表示法调用未声明的属性getter或setter,编译器会抛出错误,因此可以在编译时消除一些奇怪的运行时错误。)简单地说,使用点表示法来获取和设置对象的状态。这意味着您应该对属性对象使用点表示法。你这样做没关系。 另一方面,括号表示法用于调用对象的行为,如
[self createSubviewWithFrame:_frame];
简单地说,使用点符号来获取和设置对象的状态。这意味着您应该对属性对象使用点表示法。你这样做没关系。 另一方面,括号表示法用于调用对象的行为,如
[self createSubviewWithFrame:_frame];
不,这是相当标准的做法。不,这是相当标准的做法。我想你的括号可能在反面,是不是应该是
[[[employee name]address]city]zip]
?如果考虑可读性,那么最好使用点符号。另外,请注意您的示例中的语法错误。@izuriel和H2CO3,现在怎么样?我认为您可能会将括号放在相反的位置,不应该是[[[[employee name]address]city]zip]
?如果可读性是一个问题,那么最好使用点符号。另外,请注意示例中的语法错误。@izuriel和H2CO3,现在怎么样?谢谢,之所以选择此项,是因为之前有关于捕获潜在错误的花絮。谢谢,之所以选择此项,是因为之前有关于捕获潜在错误的花絮。