Objective-C:类与实例方法?

hmt*_*hur 1 objective-c

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

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

jer*_*jer 7

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

我相信你不知道它们如何应用于你的应用程序,所以这里有一个小小的入门:

  • 当您需要通过该类的所有实例全局访问某些行为时,可以使用类方法.即[[self class] someSpecialThing];
  • 您还需要工厂方法时使用类方法; 和
  • 在其他任何地方,您都使用实例方法.