在Objective-C中使用点运算符vs括号中的消息

在Objective-C中使用点运算符vs括号中的消息,objective-c,Objective C,摘自Stephen G.Kochan第6版“在Objective-C中编程”: 尽管编写myFraction.print这样的语句在语法上是正确的,但它并不被认为是好的编程风格。点运算符实际上是用于属性的;通常用于设置/获取实例变量的值。执行其他工作的方法通常不使用点运算符执行;传统的括号内消息表达式是首选语法 备份此职位是否存在性能缺陷,或者这仅仅是一种社会惯例?这只是一种社会惯例。属性只是一种语法糖。因此,当您使用点表示法时,它会自动转换为对getter/setter的调用 但我完全同意斯蒂

摘自Stephen G.Kochan第6版“在Objective-C中编程”:

尽管编写myFraction.print这样的语句在语法上是正确的,但它并不被认为是好的编程风格。点运算符实际上是用于属性的;通常用于设置/获取实例变量的值。执行其他工作的方法通常不使用点运算符执行;传统的括号内消息表达式是首选语法


备份此职位是否存在性能缺陷,或者这仅仅是一种社会惯例?

这只是一种社会惯例。属性只是一种语法糖。因此,当您使用点表示法时,它会自动转换为对getter/setter的调用


但我完全同意斯蒂芬·G·科昌先生的看法。使用点语法调用方法会产生误导。

这只是一种社会惯例。属性只是一种语法糖。因此,当您使用点表示法时,它会自动转换为对getter/setter的调用


但我完全同意斯蒂芬·G·科昌先生的看法。使用点语法来调用方法是有误导性的。

我不认为这是社会习俗造成的。我认为这是你从中得到的改进的可读性

虽然性能没有受到影响,但如果遵循标准,您会发现与其他开发人员一起工作会更轻松


是我的工作对象之一,并且与苹果自己的编码风格相当标准。

我不认为是社会惯例推动了这一点。我认为这是你从中得到的改进的可读性

虽然性能没有受到影响,但如果遵循标准,您会发现与其他开发人员一起工作会更轻松


是我工作的对象之一,并且与苹果自己的编码风格相当标准。

允许使用非点语法属性的消息传递方法,因为在引入属性和点运算符时,仅使用get/set访问器方法就有数亿行代码,这意味着您可以使用点运算符来表示您正在使用类似属性的访问器,即使它们没有声明为属性。从理论上讲,这个问题现在可以解决了


在获取或设置属性之外使用点操作符是很奇怪的,这会让你的代码让你自己和别人都非常困惑,但是这样做在运行时并没有性能税。另一方面,也没有理由不再将属性声明为属性,特别是因为这样可以减少Objective-C中的代码,并使它们在Swift中显示为属性而不是方法。

允许使用非点语法属性的消息传递方法,因为在使用属性和点运算符时仅使用get/set访问器方法就有数亿行代码,这意味着您可以使用点运算符来表示您正在使用类似属性的访问器,即使它们没有声明为属性。从理论上讲,这个问题现在可以解决了

在获取或设置属性之外使用点操作符是很奇怪的,这会让你的代码让你自己和别人都非常困惑,但是这样做在运行时并没有性能税。另一方面,也没有理由不再将属性声明为属性——特别是因为这样可以减少Objective-C中的代码,并使它们在Swift中显示为属性而不是方法