Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
消息的Objective-C语法_Objective C - Fatal编程技术网

消息的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,名称类方法可能是首选方法。我真的不在乎。