消息的Objective-C语法
对于这一行代码:消息的Objective-C语法,objective-c,Objective C,对于这一行代码: NSHost *now = [NSHost currentHost]; 为什么方法currentHost返回指向NSHost而不是currentHost的指针 NSHost是一个类名,currentHost是该类的静态方法。因此,NSHost类型的所有对象共享一个currentHost。例如,您可以检查self值gainst NSHost,查看您的对象是currentHost还是其他对象。这是一个类方法: 返回表示进程正在运行的主机的NSHost对象 方法就是这样设计的。该方
NSHost *now = [NSHost currentHost];
为什么方法currentHost返回指向NSHost而不是currentHost的指针 NSHost是一个类名,currentHost是该类的静态方法。因此,NSHost类型的所有对象共享一个currentHost。例如,您可以检查
self
值gainst NSHost,查看您的对象是currentHost还是其他对象。这是一个类方法:
返回表示进程正在运行的主机的NSHost对象
方法就是这样设计的。该方法不返回指向NSHost
的指针,即类型和类对象,而是指向类NSHost
的实例对象。此实例对象是当前主机
(
int*
不是指向int
的指针,而是指向int
类型的C对象的指针)实际上是一个类方法,而不是静态方法。那么这与多态性的实现方式类似吗?@zaph这在很大程度上是一个同义词。我看不出有什么区别,但似乎类方法的概念更接近接口的概念,而静态方法更多的是类定义的一部分。在Objective-C中,类确实有类方法。一个类方法可以使用self调用同一类的另一个类方法。调用它们时必须引用类,而不是类的实例。请看这个@zaph实例方法与类方法的距离与静态方法的距离相同。这只是另一个名字。但是对于objective-c,名称类方法可能是首选方法。我真的不在乎。