在阅读问题的THIS问题和接受的答案时,我无法区分这两种方法。实际上通过阅读示例得到了重点,但后来,我无法编写自己的静态方法。
我尝试用googling 在Objective c静态方法中创建静态方法
其中包含指向THIS和THIS问题的链接。但是,这里的示例是 CLASS方法,根据问题中的第一个链接。这让我感到困惑。
这里的任何人都可以告诉我如何创建静态方法,而不是类方法?
任何关于此的亮点都将受到赞赏。
答案 0 :(得分:21)
您遇到的问题如下 - Obj-C中没有静态方法,这就是您无法创建它们的原因。
静态和类方法之间的区别是语言概念之间的差异。您可以在Java或C ++等语言中找到静态方法,您可以在Obj-C和Ruby等语言中找到类方法。
主要区别在于
静态方法在所有实例之间共享(这在Obj-C中不存在)。它们是静态调度的(在编译时),具体取决于变量的类型。
类方法是类的方法。在像Obj-C和Ruby这样的语言中,类本身是另一个类(元类)的实例。在方法声明之前使用+
意味着将在类上定义方法。从技术上讲,它只是一个实例方法,只是在不同的对象上。
如果您不完全理解类方法的概念,请不要担心,这需要时间。为简化起见,您可以将其视为实例之间共享的方法,但可以在子类中重写它。