Objective c 子类和类别之间的区别?

Objective c 子类和类别之间的区别?,objective-c,Objective C,可能重复: 感谢您的回复,例如,我们有一个nsstring类,如果我们想向该类添加方法,则无需为此创建类别,我们可以将其子类化,但为什么要使用类别?请在此方面提供帮助。类别为特定类添加了一些额外的功能(例如nsstring)。您不需要用特定的类名声明对象。您只导入该类别,所有对象隐式成为该类别的实例,所有实现现在都对它们可用 其中,当子类化时(有时您需要重写现有的行为/方法,或者您也可以添加额外的功能),您可以使用如下类型显式声明该对象 MyCustomString *string; 然后

可能重复:


感谢您的回复,例如,我们有一个nsstring类,如果我们想向该类添加方法,则无需为此创建类别,我们可以将其子类化,但为什么要使用类别?请在此方面提供帮助。类别为特定类添加了一些额外的功能(例如
nsstring
)。您不需要用特定的类名声明对象。您只导入该类别,所有对象隐式成为该类别的实例,所有实现现在都对它们可用

其中,当子类化时(有时您需要重写现有的行为/方法,或者您也可以添加额外的功能),您可以使用如下类型显式声明该对象

MyCustomString *string;

然后所有的方法都可见。

与您之前的问题有什么不同吗。。。这是另一个问题的重复。Objective-C类别用于向类添加方法,而不是重写方法。看下面的讨论:@MartinR:是的,你说得对。