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,现在怎么样?谢谢,之所以选择此项,是因为之前有关于捕获潜在错误的花絮。谢谢,之所以选择此项,是因为之前有关于捕获潜在错误的花絮。