Objective c 何时使用类别,何时使用子类化?
有人能告诉我什么时候在Objective-C中使用类别和子类吗?另外,请告诉我它们的优点和缺点。如果您想用最少的代码更改类的所有实例的行为,objective-c类别非常有用。如果只想更改某些实例的行为,而保留其他实例的原始方法,则子类化更有用Objective c 何时使用类别,何时使用子类化?,objective-c,inheritance,subclass,objective-c-category,Objective C,Inheritance,Subclass,Objective C Category,有人能告诉我什么时候在Objective-C中使用类别和子类吗?另外,请告诉我它们的优点和缺点。如果您想用最少的代码更改类的所有实例的行为,objective-c类别非常有用。如果只想更改某些实例的行为,而保留其他实例的原始方法,则子类化更有用 类别可能是危险的,尤其是当您无法查看原始方法的源代码时,因此您通常应该在第三方和私有框架上使用子类,而不是类别。补充了coneybeare的说法。子类化是一种更好的自定义选项,当您只想向现有类添加一些功能时,最好使用类别。类别:如果我们想在源未知的给定类
类别可能是危险的,尤其是当您无法查看原始方法的源代码时,因此您通常应该在第三方和私有框架上使用子类,而不是类别。补充了coneybeare的说法。子类化是一种更好的自定义选项,当您只想向现有类添加一些功能时,最好使用类别。类别:如果我们想在源未知的给定类上添加任何方法,则使用它。当我们想要改变任何类的行为时,基本上都会用到这个方法 例如:如果我们想在NSString上添加一个方法来反转字符串,我们可以选择categories 子类化:如果我们想修改任何类的状态和行为,或者重写任何方法来改变父类的行为,那么我们就进行子类化 例如:我们将UIView子类化,以改变其在iOS代码中的状态和行为。
- 您想更改作为框架的一部分发生的事情吗 UI对象生命周期中的调用?使用子类。推翻 各自的方法,如init、drawrect、layoutsubviews等
- 您是否想要应用程序范围内的内容,即
除了现有的功能之外,您不在乎这是否
是否可用于此框架类的现有实例的所有实例?使用类别。示例:在某些用户操作时设置UILabel动画,并通过应用程序将此动画应用于所有UILabel实例