What's the difference of instance method and class method in Objective-C?
Possible Duplicate:
Objective-C: Class vs Instance Methods?
Objective-C - difference between class method and static method?
在objc中,方法名前面的一个破折号表示它是一个实例方法。方法名前面加一个加号表示它是类方法。但是编程有什么区别呢?
类方法和实例方法的区别在于实例方法需要类的实例,在该实例上(一般)操作。调用实例方法的消息必须是发送到类的实例。
类方法最常见的一种用法可能是对象工厂;发送到类以创建实例的消息根据您发送的参数进行配置。例如在cocoa nsstring类有几个名为StringWithSomeThingorOther:这将创建一个新的nsString对象并把它还给你。
另一方面,nsstring也有许多实例方法-如果没有实际的实例一起工作。一个常用的方法可能是长度法,它告诉我们您在特定nsstring实例中有多少个字符消息已发送。
也看到这一点。类方法和实例方法有什么区别?
与这两种方法的主要区别是前者的一个IE只有一个破折号,在它被声明为IE的类的实例调用之前,必须为该类创建一个实例,这意味着该类有一个对象,并且使用
在类方法中,可以直接使用类名调用后面的方法。要调用类方法,一个dosen不需要任何对象。
请参考苹果开发者文档中的链接
对对象调用实例方法。对类调用类方法。
例如线条:
在这里,您可以看到"alloc"在"someclass"上工作,而不是在"object"上工作。
鉴于: