2010-12-12 122 views
1

在Objective-C中,在创建任何类时,我们如何决定是否需要将方法标记为Class方法或实例方法?Objective-C:类与实例方法?

我知道2的区别,但我的问题是如何决定任何方法的标记(+/-)?

回答

7

+表示类方法,-表示实例方法。您可以在应用程序需要它们的地方创建类或实例方法。如果你真的知道两者和你的应用程序之间的区别,那么你应该没有问题了解何时使用它。

我相信你不知道他们是如何应用到你的应用程序的不同,所以这里是一个小底漆:

  • 您可以使用一个类的方法,当你需要通过的所有实例全局访问某些行为那个班。即,[[self class] someSpecialThing];
  • 当您需要工厂方法时,您也可以使用类方法;和
  • 其他地方,你使用一个实例方法。
+0

好的答案,但我相信这是一个有点歧途 - 导致说消息'self'的类通常保留用于工厂方法。在我看来,只要你的功能绑定到特定的类型,但不关心任何特定的实例,你应该使用类方法。 – 2010-12-12 16:31:33

+0

对不起,对我来说可怜的措辞,我不打算暗示那是好的形式,那是两个不同的想法。我会解决措辞。 – jer 2010-12-12 17:26:51