阅读时THIS问题和接受的问题答案,我无法区分这两种方法。通过阅读示例实际上明白了要点,但是后来,我无法编写自己的静态方法。
我尝试使用谷歌搜索在 Objective-C 静态方法中创建静态方法
它返回了指向 THIS 的链接和 THIS问题。但是,根据问题中的第一个链接,这里的示例是 CLASS 方法。这让我很困惑。
这里有人能告诉我如何创建一个不是类方法的静态方法吗?
如能提供任何相关信息,我们将不胜感激。
最佳答案
您遇到的问题如下 - Obj-C 中没有静态方法,这就是您无法创建它们的原因。
静态方法和类方法的区别是语言概念的区别。您可以在 Java 或 C++ 等语言中找到静态方法,您会在 Obj-C 和 Ruby 等语言中找到类方法。
主要区别在于
静态方法在所有实例之间共享(这在 Obj-C 中不存在)。它们根据变量的类型进行静态调度(在编译时)。
类方法是类的方法。在像 Obj-C 和 Ruby 这样的语言中,类本身是另一个类(元类)的实例。在方法声明之前使用
+
意味着该方法将在类上定义。从技术上讲,它只是一个实例方法,只是在不同的对象上。
如果您没有完全理解类方法的概念,请不要担心,这需要时间。为了简化,您可以将其视为实例之间共享的方法,但可以在子类中覆盖它。
关于objective-c - Objective-C 中的静态方法(不是类方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965865/