2012-11-12 96 views
0

可能重复:
Difference between inheritance and Categories in Objective-c
What’s the difference and use of categories and inheritance?子类和类别之间的区别?

感谢您的回复,例如,如果我们想方法添加到类,没有必要创建类别,我们有NSString类为此,我们可以将其子类化,但为什么我们使用类别?请在此帮助

+1

和以前的问题有什么不同吗? http://stackoverflow.com/questions/13344075/whats-the-difference-and-use-of-categories-and-inheritance – vikingosegundo

+0

...这是另一个问题的副本。 – woz

回答

10

类别增加了一些额外的功能,以指定c类(例如NSString)。你不需要用那个特定的类名声明对象。您只导入该类别,并且所有对象都隐式地成为该类别的实例,现在所有的实现都可以使用它们。

哪里继承的时候,(有时你能全神贯注地需要重写现有的行为/方法或者您也可以添加额外的功能。)您明确声明对象与该类型像

MyCustomString *string; 

,然后所有的方法变得可见。

+3

Objective-C类别用于将**方法添加到类中,而不是**重写**方法。见例如这个讨论:http://stackoverflow.com/a/5272612/1187415 –

+0

@MartinR:是的,你是对的。 –